]> git.sesse.net Git - casparcg/blobdiff - core/producer/text/utils/texture_font.h
[text_producer] Don't upload texture atlas to GPU every time the text or tracking...
[casparcg] / core / producer / text / utils / texture_font.h
index e6acf8d72172fab8ea27f85d29db56d18fdc8467..11855adfaee4c14957a94795a8a0388af44607cd 100644 (file)
@@ -5,11 +5,13 @@
 #include <common/memory.h>
 
 #include "string_metrics.h"
+#include "text_info.h"
+#include "../../../frame/geometry.h"
 
 namespace caspar { namespace core { namespace text {
 
 class texture_atlas;
-enum unicode_block;
+enum class unicode_block;
 
 class texture_font
 {
@@ -18,17 +20,20 @@ class texture_font
        const texture_font& operator=(const texture_font&);
 
 public:
-       texture_font(texture_atlas&, const std::wstring& filename, float size, bool normalize_coordinates);
-       void load_glyphs(unicode_block block, const color<float>& col);
-       std::vector<float> create_vertex_stream(const std::wstring& str, int x, int y, int parent_width, int parent_height, string_metrics* metrics);
+       texture_font(texture_atlas&, const text_info&, bool normalize_coordinates);
+       void load_glyphs(unicode_block block, const color<double>& col);
+       void set_tracking(double tracking);
+       std::vector<frame_geometry::coord> create_vertex_stream(const std::wstring& str, int x, int y, int parent_width, int parent_height, string_metrics* metrics, double shear = 0.0);
        string_metrics measure_string(const std::wstring& str);
+       std::wstring get_name() const;
+       double get_size() const;
 
 private:
        struct impl;
        spl::shared_ptr<impl> impl_;
 };
 
-enum unicode_block
+enum class unicode_block
 {
        Basic_Latin,
        Latin_1_Supplement,
@@ -252,4 +257,4 @@ enum unicode_block
        Supplementary_Private_Use_Area_B
 };
 
-}}}
\ No newline at end of file
+}}}