5 #include <common/memory.h>
7 #include "string_metrics.h"
9 #include "../../../frame/geometry.h"
11 namespace caspar { namespace core { namespace text {
14 enum class unicode_block;
19 texture_font(const texture_font&);
20 const texture_font& operator=(const texture_font&);
23 texture_font(texture_atlas&, const text_info&, bool normalize_coordinates);
24 void load_glyphs(unicode_block block, const color<double>& col);
25 void set_tracking(double tracking);
26 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);
27 std::wstring get_name() const;
28 double get_size() const;
32 spl::shared_ptr<impl> impl_;
35 enum class unicode_block
42 Spacing_Modifier_Letters,
43 Combining_Diacritical_Marks,
76 Unified_Canadian_Aboriginal_Syllabics,
85 Unified_Canadian_Aboriginal_Syllabics_Extended,
100 Phonetic_Extensions_Supplement,
101 Combining_Diacritical_Marks_Supplement,
102 Latin_Extended_Additional,
105 Superscripts_and_Subscripts,
107 Combining_Diacritical_Marks_for_Symbols,
111 Mathematical_Operators,
112 Miscellaneous_Technical,
114 Optical_Character_Recognition,
115 Enclosed_Alphanumerics,
119 Miscellaneous_Symbols,
121 Miscellaneous_Mathematical_Symbols_A,
122 Supplemental_Arrows_A,
124 Supplemental_Arrows_B,
125 Miscellaneous_Mathematical_Symbols_B,
126 Supplemental_Mathematical_Operators,
127 Miscellaneous_Symbols_and_Arrows,
135 Supplemental_Punctuation,
136 CJK_Radicals_Supplement,
138 Ideographic_Description_Characters,
139 CJK_Symbols_and_Punctuation,
143 Hangul_Compatibility_Jamo,
147 Katakana_Phonetic_Extensions,
148 Enclosed_CJK_Letters_and_Months,
150 CJK_Unified_Ideographs_Extension_A,
151 Yijing_Hexagram_Symbols,
152 CJK_Unified_Ideographs,
159 Modifier_Tone_Letters,
162 Common_Indic_Number_Forms,
168 Hangul_Jamo_Extended_A,
173 Meetei_Mayek_Extensions,
177 Hangul_Jamo_Extended_B,
179 High_Private_Use_Surrogates,
182 CJK_Compatibility_Ideographs,
183 Alphabetic_Presentation_Forms,
184 Arabic_Presentation_Forms_A,
187 Combining_Half_Marks,
188 CJK_Compatibility_Forms,
190 Arabic_Presentation_Forms_B,
191 Halfwidth_and_Fullwidth_Forms,
196 Ancient_Greek_Numbers,
212 Meroitic_Hieroglyphs,
217 Inscriptional_Parthian,
218 Inscriptional_Pahlavi,
220 Rumi_Numeral_Symbols,
228 Cuneiform_Numbers_and_Punctuation,
229 Egyptian_Hieroglyphs,
233 Byzantine_Musical_Symbols,
235 Ancient_Greek_Musical_Notation,
236 Tai_Xuan_Jing_Symbols,
237 Counting_Rod_Numerals,
238 Mathematical_Alphanumeric_Symbols,
239 Arabic_Mathematical_Alphabetic_Symbols,
243 Enclosed_Alphanumeric_Supplement,
244 Enclosed_Ideographic_Supplement,
245 Miscellaneous_Symbols_And_Pictographs,
247 Transport_And_Map_Symbols,
249 CJK_Unified_Ideographs_Extension_B,
250 CJK_Unified_Ideographs_Extension_C,
251 CJK_Unified_Ideographs_Extension_D,
252 CJK_Compatibility_Ideographs_Supplement,
254 Variation_Selectors_Supplement,
255 Supplementary_Private_Use_Area_A,
256 Supplementary_Private_Use_Area_B