OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef SkOTTable_name_DEFINED | 8 #ifndef SkOTTable_name_DEFINED |
9 #define SkOTTable_name_DEFINED | 9 #define SkOTTable_name_DEFINED |
10 | 10 |
11 #include "SkEndian.h" | 11 #include "SkEndian.h" |
12 #include "SkOTTableTypes.h" | 12 #include "SkOTTableTypes.h" |
13 #include "SkString.h" | 13 #include "SkString.h" |
14 #include "SkTypedEnum.h" | |
15 | 14 |
16 #pragma pack(push, 1) | 15 #pragma pack(push, 1) |
17 | 16 |
18 struct SkOTTableName { | 17 struct SkOTTableName { |
19 static const SK_OT_CHAR TAG0 = 'n'; | 18 static const SK_OT_CHAR TAG0 = 'n'; |
20 static const SK_OT_CHAR TAG1 = 'a'; | 19 static const SK_OT_CHAR TAG1 = 'a'; |
21 static const SK_OT_CHAR TAG2 = 'm'; | 20 static const SK_OT_CHAR TAG2 = 'm'; |
22 static const SK_OT_CHAR TAG3 = 'e'; | 21 static const SK_OT_CHAR TAG3 = 'e'; |
23 static const SK_OT_ULONG TAG = SkOTTableTAG<SkOTTableName>::value; | 22 static const SK_OT_ULONG TAG = SkOTTableTAG<SkOTTableName>::value; |
24 | 23 |
25 SK_OT_USHORT format; | 24 SK_OT_USHORT format; |
26 static const SK_OT_USHORT format_0 = SkTEndian_SwapBE16(0); | 25 static const SK_OT_USHORT format_0 = SkTEndian_SwapBE16(0); |
27 /** Format 1 was added in OpenType 1.6 (April 2009). */ | 26 /** Format 1 was added in OpenType 1.6 (April 2009). */ |
28 static const SK_OT_USHORT format_1 = SkTEndian_SwapBE16(1); | 27 static const SK_OT_USHORT format_1 = SkTEndian_SwapBE16(1); |
29 | 28 |
30 /** The number of name records which follow. */ | 29 /** The number of name records which follow. */ |
31 SK_OT_USHORT count; | 30 SK_OT_USHORT count; |
32 | 31 |
33 /** Offset in SK_OT_BYTEs to start of string storage area (from start of tab
le). */ | 32 /** Offset in SK_OT_BYTEs to start of string storage area (from start of tab
le). */ |
34 SK_OT_USHORT stringOffset; | 33 SK_OT_USHORT stringOffset; |
35 | 34 |
36 struct Record { | 35 struct Record { |
37 /** The platform ID specifies how to interpret the encoding and language
ID. */ | 36 /** The platform ID specifies how to interpret the encoding and language
ID. */ |
38 struct PlatformID { | 37 struct PlatformID { |
39 SK_TYPED_ENUM(Value, SK_OT_USHORT, | 38 enum Value : SK_OT_USHORT { |
40 ((Unicode, SkTEndian_SwapBE16(0))) | 39 Unicode = SkTEndian_SwapBE16(0), |
41 ((Macintosh, SkTEndian_SwapBE16(1))) | 40 Macintosh = SkTEndian_SwapBE16(1), |
42 ((ISO, SkTEndian_SwapBE16(2))) // Deprecated, use Unicode instea
d. | 41 ISO = SkTEndian_SwapBE16(2), // Deprecated, use Unicode instead. |
43 ((Windows, SkTEndian_SwapBE16(3))) | 42 Windows = SkTEndian_SwapBE16(3), |
44 ((Custom, SkTEndian_SwapBE16(4))) | 43 Custom = SkTEndian_SwapBE16(4), |
45 SK_SEQ_END, | 44 } value; |
46 (value)SK_SEQ_END) | |
47 } platformID; | 45 } platformID; |
48 | 46 |
49 union EncodingID { | 47 union EncodingID { |
50 SK_OT_USHORT custom; | 48 SK_OT_USHORT custom; |
51 | 49 |
52 /** Always UTF-16BE. */ | 50 /** Always UTF-16BE. */ |
53 struct Unicode { | 51 struct Unicode { |
54 SK_TYPED_ENUM(Value, SK_OT_USHORT, | 52 enum Value : SK_OT_USHORT { |
55 ((Unicode10, SkTEndian_SwapBE16(0))) | 53 Unicode10 = SkTEndian_SwapBE16(0), |
56 ((Unicode11, SkTEndian_SwapBE16(1))) | 54 Unicode11 = SkTEndian_SwapBE16(1), |
57 ((ISO10646, SkTEndian_SwapBE16(2))) //deprecated, use Unicod
e11 | 55 ISO10646 = SkTEndian_SwapBE16(2), //deprecated, use Unicode1
1 |
58 ((Unicode20BMP, SkTEndian_SwapBE16(3))) | 56 Unicode20BMP = SkTEndian_SwapBE16(3), |
59 ((Unicode20, SkTEndian_SwapBE16(4))) | 57 Unicode20 = SkTEndian_SwapBE16(4), |
60 ((UnicodeVariationSequences, SkTEndian_SwapBE16(5))) | 58 UnicodeVariationSequences = SkTEndian_SwapBE16(5), |
61 ((UnicodeFull, SkTEndian_SwapBE16(6))) | 59 UnicodeFull = SkTEndian_SwapBE16(6), |
62 SK_SEQ_END, | 60 } value; |
63 (value)SK_SEQ_END) | |
64 } unicode; | 61 } unicode; |
65 | 62 |
66 /** These are Mac encodings, see http://www.unicode.org/Public/MAPPI
NGS/VENDORS/APPLE/ | 63 /** These are Mac encodings, see http://www.unicode.org/Public/MAPPI
NGS/VENDORS/APPLE/ |
67 * for their mappings to unicode. | 64 * for their mappings to unicode. |
68 * Name table strings using PlatformID::Macintosh must use Roman. | 65 * Name table strings using PlatformID::Macintosh must use Roman. |
69 */ | 66 */ |
70 struct Macintosh { | 67 struct Macintosh { |
71 SK_TYPED_ENUM(Value, SK_OT_USHORT, | 68 enum Value : SK_OT_USHORT { |
72 ((Roman, SkTEndian_SwapBE16(0))) | 69 Roman = SkTEndian_SwapBE16(0), |
73 ((Japanese, SkTEndian_SwapBE16(1))) | 70 Japanese = SkTEndian_SwapBE16(1), |
74 ((ChineseTraditional, SkTEndian_SwapBE16(2))) | 71 ChineseTraditional = SkTEndian_SwapBE16(2), |
75 ((Korean, SkTEndian_SwapBE16(3))) | 72 Korean = SkTEndian_SwapBE16(3), |
76 ((Arabic, SkTEndian_SwapBE16(4))) | 73 Arabic = SkTEndian_SwapBE16(4), |
77 ((Hebrew, SkTEndian_SwapBE16(5))) | 74 Hebrew = SkTEndian_SwapBE16(5), |
78 ((Greek, SkTEndian_SwapBE16(6))) | 75 Greek = SkTEndian_SwapBE16(6), |
79 ((Russian, SkTEndian_SwapBE16(7))) | 76 Russian = SkTEndian_SwapBE16(7), |
80 ((RSymbol, SkTEndian_SwapBE16(8))) | 77 RSymbol = SkTEndian_SwapBE16(8), |
81 ((Devanagari, SkTEndian_SwapBE16(9))) | 78 Devanagari = SkTEndian_SwapBE16(9), |
82 ((Gurmukhi, SkTEndian_SwapBE16(10))) | 79 Gurmukhi = SkTEndian_SwapBE16(10), |
83 ((Gujarati, SkTEndian_SwapBE16(11))) | 80 Gujarati = SkTEndian_SwapBE16(11), |
84 ((Oriya, SkTEndian_SwapBE16(12))) | 81 Oriya = SkTEndian_SwapBE16(12), |
85 ((Bengali, SkTEndian_SwapBE16(13))) | 82 Bengali = SkTEndian_SwapBE16(13), |
86 ((Tamil, SkTEndian_SwapBE16(14))) | 83 Tamil = SkTEndian_SwapBE16(14), |
87 ((Telugu, SkTEndian_SwapBE16(15))) | 84 Telugu = SkTEndian_SwapBE16(15), |
88 ((Kannada, SkTEndian_SwapBE16(16))) | 85 Kannada = SkTEndian_SwapBE16(16), |
89 ((Malayalam, SkTEndian_SwapBE16(17))) | 86 Malayalam = SkTEndian_SwapBE16(17), |
90 ((Sinhalese, SkTEndian_SwapBE16(18))) | 87 Sinhalese = SkTEndian_SwapBE16(18), |
91 ((Burmese, SkTEndian_SwapBE16(19))) | 88 Burmese = SkTEndian_SwapBE16(19), |
92 ((Khmer, SkTEndian_SwapBE16(20))) | 89 Khmer = SkTEndian_SwapBE16(20), |
93 ((Thai, SkTEndian_SwapBE16(21))) | 90 Thai = SkTEndian_SwapBE16(21), |
94 ((Laotian, SkTEndian_SwapBE16(22))) | 91 Laotian = SkTEndian_SwapBE16(22), |
95 ((Georgian, SkTEndian_SwapBE16(23))) | 92 Georgian = SkTEndian_SwapBE16(23), |
96 ((Armenian, SkTEndian_SwapBE16(24))) | 93 Armenian = SkTEndian_SwapBE16(24), |
97 ((ChineseSimplified, SkTEndian_SwapBE16(25))) | 94 ChineseSimplified = SkTEndian_SwapBE16(25), |
98 ((Tibetan, SkTEndian_SwapBE16(26))) | 95 Tibetan = SkTEndian_SwapBE16(26), |
99 ((Mongolian, SkTEndian_SwapBE16(27))) | 96 Mongolian = SkTEndian_SwapBE16(27), |
100 ((Geez, SkTEndian_SwapBE16(28))) | 97 Geez = SkTEndian_SwapBE16(28), |
101 ((Slavic, SkTEndian_SwapBE16(29))) | 98 Slavic = SkTEndian_SwapBE16(29), |
102 ((Vietnamese, SkTEndian_SwapBE16(30))) | 99 Vietnamese = SkTEndian_SwapBE16(30), |
103 ((Sindhi, SkTEndian_SwapBE16(31))) | 100 Sindhi = SkTEndian_SwapBE16(31), |
104 ((Uninterpreted, SkTEndian_SwapBE16(32))) | 101 Uninterpreted = SkTEndian_SwapBE16(32), |
105 SK_SEQ_END, | 102 } value; |
106 (value)SK_SEQ_END) | |
107 } macintosh; | 103 } macintosh; |
108 | 104 |
109 /** Deprecated, use Unicode instead. */ | 105 /** Deprecated, use Unicode instead. */ |
110 struct ISO { | 106 struct ISO { |
111 SK_TYPED_ENUM(Value, SK_OT_USHORT, | 107 enum Value : SK_OT_USHORT { |
112 ((ASCII7, SkTEndian_SwapBE16(0))) | 108 ASCII7 = SkTEndian_SwapBE16(0), |
113 ((ISO10646, SkTEndian_SwapBE16(1))) | 109 ISO10646 = SkTEndian_SwapBE16(1), |
114 ((ISO88591, SkTEndian_SwapBE16(2))) | 110 ISO88591 = SkTEndian_SwapBE16(2), |
115 SK_SEQ_END, | 111 } value; |
116 (value)SK_SEQ_END) | |
117 } iso; | 112 } iso; |
118 | 113 |
119 /** Name table strings using PlatformID::Windows must use Symbol, Un
icodeBMPUCS2, or | 114 /** Name table strings using PlatformID::Windows must use Symbol, Un
icodeBMPUCS2, or |
120 * UnicodeUCS4. Symbol and UnicodeBMPUCS2 are both UCS2-BE, Unicode
UCS4 is actually | 115 * UnicodeUCS4. Symbol and UnicodeBMPUCS2 are both UCS2-BE, Unicode
UCS4 is actually |
121 * UTF-16BE. | 116 * UTF-16BE. |
122 */ | 117 */ |
123 struct Windows { | 118 struct Windows { |
124 SK_TYPED_ENUM(Value, SK_OT_USHORT, | 119 enum Value : SK_OT_USHORT { |
125 ((Symbol, SkTEndian_SwapBE16(0))) // UCS2-BE, but don't use
this font to display it's own name. | 120 Symbol = SkTEndian_SwapBE16(0), // UCS2-BE, but don't use th
is font to display it's own name. |
126 ((UnicodeBMPUCS2, SkTEndian_SwapBE16(1))) // UCS2-BE, Window
s default | 121 UnicodeBMPUCS2 = SkTEndian_SwapBE16(1), // UCS2-BE, Windows
default |
127 ((ShiftJIS, SkTEndian_SwapBE16(2))) | 122 ShiftJIS = SkTEndian_SwapBE16(2), |
128 ((PRC, SkTEndian_SwapBE16(3))) | 123 PRC = SkTEndian_SwapBE16(3), |
129 ((Big5, SkTEndian_SwapBE16(4))) | 124 Big5 = SkTEndian_SwapBE16(4), |
130 ((Wansung, SkTEndian_SwapBE16(5))) | 125 Wansung = SkTEndian_SwapBE16(5), |
131 ((Johab, SkTEndian_SwapBE16(6))) | 126 Johab = SkTEndian_SwapBE16(6), |
132 ((UnicodeUCS4, SkTEndian_SwapBE16(10))) // UTF-16BE. It mean
s UCS4 in charmaps. | 127 UnicodeUCS4 = SkTEndian_SwapBE16(10), // UTF-16BE. It means
UCS4 in charmaps. |
133 SK_SEQ_END, | 128 } value; |
134 (value)SK_SEQ_END) | |
135 } windows; | 129 } windows; |
136 } encodingID; | 130 } encodingID; |
137 | 131 |
138 /** LanguageIDs <= 0x7FFF are predefined. | 132 /** LanguageIDs <= 0x7FFF are predefined. |
139 * LanguageIDs > 0x7FFF are indexes into the langTagRecord array | 133 * LanguageIDs > 0x7FFF are indexes into the langTagRecord array |
140 * (in format 1 name tables, see SkOTTableName::format). | 134 * (in format 1 name tables, see SkOTTableName::format). |
141 */ | 135 */ |
142 union LanguageID { | 136 union LanguageID { |
143 /** A value greater than 0x7FFF. | 137 /** A value greater than 0x7FFF. |
144 * languageTagID - 0x8000 is an index into the langTagRecord array. | 138 * languageTagID - 0x8000 is an index into the langTagRecord array. |
145 */ | 139 */ |
146 SK_OT_USHORT languageTagID; | 140 SK_OT_USHORT languageTagID; |
147 | 141 |
148 /** These are known as Language Designators. | 142 /** These are known as Language Designators. |
149 * Apple now uses BCP 47 (post OSX10.4), so there will be no new en
tries. | 143 * Apple now uses BCP 47 (post OSX10.4), so there will be no new en
tries. |
150 */ | 144 */ |
151 struct Macintosh { | 145 struct Macintosh { |
152 SK_TYPED_ENUM(Value, SK_OT_USHORT, | 146 enum Value : SK_OT_USHORT { |
153 ((English, SkTEndian_SwapBE16(0))) | 147 English = SkTEndian_SwapBE16(0), |
154 ((French, SkTEndian_SwapBE16(1))) | 148 French = SkTEndian_SwapBE16(1), |
155 ((German, SkTEndian_SwapBE16(2))) | 149 German = SkTEndian_SwapBE16(2), |
156 ((Italian, SkTEndian_SwapBE16(3))) | 150 Italian = SkTEndian_SwapBE16(3), |
157 ((Dutch, SkTEndian_SwapBE16(4))) | 151 Dutch = SkTEndian_SwapBE16(4), |
158 ((Swedish, SkTEndian_SwapBE16(5))) | 152 Swedish = SkTEndian_SwapBE16(5), |
159 ((Spanish, SkTEndian_SwapBE16(6))) | 153 Spanish = SkTEndian_SwapBE16(6), |
160 ((Danish, SkTEndian_SwapBE16(7))) | 154 Danish = SkTEndian_SwapBE16(7), |
161 ((Portuguese, SkTEndian_SwapBE16(8))) | 155 Portuguese = SkTEndian_SwapBE16(8), |
162 ((Norwegian, SkTEndian_SwapBE16(9))) | 156 Norwegian = SkTEndian_SwapBE16(9), |
163 ((Hebrew, SkTEndian_SwapBE16(10))) | 157 Hebrew = SkTEndian_SwapBE16(10), |
164 ((Japanese, SkTEndian_SwapBE16(11))) | 158 Japanese = SkTEndian_SwapBE16(11), |
165 ((Arabic, SkTEndian_SwapBE16(12))) | 159 Arabic = SkTEndian_SwapBE16(12), |
166 ((Finnish, SkTEndian_SwapBE16(13))) | 160 Finnish = SkTEndian_SwapBE16(13), |
167 ((Greek, SkTEndian_SwapBE16(14))) | 161 Greek = SkTEndian_SwapBE16(14), |
168 ((Icelandic, SkTEndian_SwapBE16(15))) | 162 Icelandic = SkTEndian_SwapBE16(15), |
169 ((Maltese, SkTEndian_SwapBE16(16))) | 163 Maltese = SkTEndian_SwapBE16(16), |
170 ((Turkish, SkTEndian_SwapBE16(17))) | 164 Turkish = SkTEndian_SwapBE16(17), |
171 ((Croatian, SkTEndian_SwapBE16(18))) | 165 Croatian = SkTEndian_SwapBE16(18), |
172 ((ChineseTraditional, SkTEndian_SwapBE16(19))) | 166 ChineseTraditional = SkTEndian_SwapBE16(19), |
173 ((Urdu, SkTEndian_SwapBE16(20))) | 167 Urdu = SkTEndian_SwapBE16(20), |
174 ((Hindi, SkTEndian_SwapBE16(21))) | 168 Hindi = SkTEndian_SwapBE16(21), |
175 ((Thai, SkTEndian_SwapBE16(22))) | 169 Thai = SkTEndian_SwapBE16(22), |
176 ((Korean, SkTEndian_SwapBE16(23))) | 170 Korean = SkTEndian_SwapBE16(23), |
177 ((Lithuanian, SkTEndian_SwapBE16(24))) | 171 Lithuanian = SkTEndian_SwapBE16(24), |
178 ((Polish, SkTEndian_SwapBE16(25))) | 172 Polish = SkTEndian_SwapBE16(25), |
179 ((Hungarian, SkTEndian_SwapBE16(26))) | 173 Hungarian = SkTEndian_SwapBE16(26), |
180 ((Estonian, SkTEndian_SwapBE16(27))) | 174 Estonian = SkTEndian_SwapBE16(27), |
181 ((Latvian, SkTEndian_SwapBE16(28))) | 175 Latvian = SkTEndian_SwapBE16(28), |
182 ((Sami, SkTEndian_SwapBE16(29))) | 176 Sami = SkTEndian_SwapBE16(29), |
183 ((Faroese, SkTEndian_SwapBE16(30))) | 177 Faroese = SkTEndian_SwapBE16(30), |
184 ((Farsi_Persian, SkTEndian_SwapBE16(31))) | 178 Farsi_Persian = SkTEndian_SwapBE16(31), |
185 ((Russian, SkTEndian_SwapBE16(32))) | 179 Russian = SkTEndian_SwapBE16(32), |
186 ((ChineseSimplified, SkTEndian_SwapBE16(33))) | 180 ChineseSimplified = SkTEndian_SwapBE16(33), |
187 ((Flemish, SkTEndian_SwapBE16(34))) | 181 Flemish = SkTEndian_SwapBE16(34), |
188 ((IrishGaelic, SkTEndian_SwapBE16(35))) | 182 IrishGaelic = SkTEndian_SwapBE16(35), |
189 ((Albanian, SkTEndian_SwapBE16(36))) | 183 Albanian = SkTEndian_SwapBE16(36), |
190 ((Romanian, SkTEndian_SwapBE16(37))) | 184 Romanian = SkTEndian_SwapBE16(37), |
191 ((Czech, SkTEndian_SwapBE16(38))) | 185 Czech = SkTEndian_SwapBE16(38), |
192 ((Slovak, SkTEndian_SwapBE16(39))) | 186 Slovak = SkTEndian_SwapBE16(39), |
193 ((Slovenian, SkTEndian_SwapBE16(40))) | 187 Slovenian = SkTEndian_SwapBE16(40), |
194 ((Yiddish, SkTEndian_SwapBE16(41))) | 188 Yiddish = SkTEndian_SwapBE16(41), |
195 ((Serbian, SkTEndian_SwapBE16(42))) | 189 Serbian = SkTEndian_SwapBE16(42), |
196 ((Macedonian, SkTEndian_SwapBE16(43))) | 190 Macedonian = SkTEndian_SwapBE16(43), |
197 ((Bulgarian, SkTEndian_SwapBE16(44))) | 191 Bulgarian = SkTEndian_SwapBE16(44), |
198 ((Ukrainian, SkTEndian_SwapBE16(45))) | 192 Ukrainian = SkTEndian_SwapBE16(45), |
199 ((Byelorussian, SkTEndian_SwapBE16(46))) | 193 Byelorussian = SkTEndian_SwapBE16(46), |
200 ((Uzbek, SkTEndian_SwapBE16(47))) | 194 Uzbek = SkTEndian_SwapBE16(47), |
201 ((Kazakh, SkTEndian_SwapBE16(48))) | 195 Kazakh = SkTEndian_SwapBE16(48), |
202 ((AzerbaijaniCyrillic, SkTEndian_SwapBE16(49))) | 196 AzerbaijaniCyrillic = SkTEndian_SwapBE16(49), |
203 ((AzerbaijaniArabic, SkTEndian_SwapBE16(50))) | 197 AzerbaijaniArabic = SkTEndian_SwapBE16(50), |
204 ((Armenian, SkTEndian_SwapBE16(51))) | 198 Armenian = SkTEndian_SwapBE16(51), |
205 ((Georgian, SkTEndian_SwapBE16(52))) | 199 Georgian = SkTEndian_SwapBE16(52), |
206 ((Moldavian, SkTEndian_SwapBE16(53))) | 200 Moldavian = SkTEndian_SwapBE16(53), |
207 ((Kirghiz, SkTEndian_SwapBE16(54))) | 201 Kirghiz = SkTEndian_SwapBE16(54), |
208 ((Tajiki, SkTEndian_SwapBE16(55))) | 202 Tajiki = SkTEndian_SwapBE16(55), |
209 ((Turkmen, SkTEndian_SwapBE16(56))) | 203 Turkmen = SkTEndian_SwapBE16(56), |
210 ((MongolianTraditional, SkTEndian_SwapBE16(57))) | 204 MongolianTraditional = SkTEndian_SwapBE16(57), |
211 ((MongolianCyrillic, SkTEndian_SwapBE16(58))) | 205 MongolianCyrillic = SkTEndian_SwapBE16(58), |
212 ((Pashto, SkTEndian_SwapBE16(59))) | 206 Pashto = SkTEndian_SwapBE16(59), |
213 ((Kurdish, SkTEndian_SwapBE16(60))) | 207 Kurdish = SkTEndian_SwapBE16(60), |
214 ((Kashmiri, SkTEndian_SwapBE16(61))) | 208 Kashmiri = SkTEndian_SwapBE16(61), |
215 ((Sindhi, SkTEndian_SwapBE16(62))) | 209 Sindhi = SkTEndian_SwapBE16(62), |
216 ((Tibetan, SkTEndian_SwapBE16(63))) | 210 Tibetan = SkTEndian_SwapBE16(63), |
217 ((Nepali, SkTEndian_SwapBE16(64))) | 211 Nepali = SkTEndian_SwapBE16(64), |
218 ((Sanskrit, SkTEndian_SwapBE16(65))) | 212 Sanskrit = SkTEndian_SwapBE16(65), |
219 ((Marathi, SkTEndian_SwapBE16(66))) | 213 Marathi = SkTEndian_SwapBE16(66), |
220 ((Bengali, SkTEndian_SwapBE16(67))) | 214 Bengali = SkTEndian_SwapBE16(67), |
221 ((Assamese, SkTEndian_SwapBE16(68))) | 215 Assamese = SkTEndian_SwapBE16(68), |
222 ((Gujarati, SkTEndian_SwapBE16(69))) | 216 Gujarati = SkTEndian_SwapBE16(69), |
223 ((Punjabi, SkTEndian_SwapBE16(70))) | 217 Punjabi = SkTEndian_SwapBE16(70), |
224 ((Oriya, SkTEndian_SwapBE16(71))) | 218 Oriya = SkTEndian_SwapBE16(71), |
225 ((Malayalam, SkTEndian_SwapBE16(72))) | 219 Malayalam = SkTEndian_SwapBE16(72), |
226 ((Kannada, SkTEndian_SwapBE16(73))) | 220 Kannada = SkTEndian_SwapBE16(73), |
227 ((Tamil, SkTEndian_SwapBE16(74))) | 221 Tamil = SkTEndian_SwapBE16(74), |
228 ((Telugu, SkTEndian_SwapBE16(75))) | 222 Telugu = SkTEndian_SwapBE16(75), |
229 ((Sinhalese, SkTEndian_SwapBE16(76))) | 223 Sinhalese = SkTEndian_SwapBE16(76), |
230 ((Burmese, SkTEndian_SwapBE16(77))) | 224 Burmese = SkTEndian_SwapBE16(77), |
231 ((Khmer, SkTEndian_SwapBE16(78))) | 225 Khmer = SkTEndian_SwapBE16(78), |
232 ((Lao, SkTEndian_SwapBE16(79))) | 226 Lao = SkTEndian_SwapBE16(79), |
233 ((Vietnamese, SkTEndian_SwapBE16(80))) | 227 Vietnamese = SkTEndian_SwapBE16(80), |
234 ((Indonesian, SkTEndian_SwapBE16(81))) | 228 Indonesian = SkTEndian_SwapBE16(81), |
235 ((Tagalong, SkTEndian_SwapBE16(82))) | 229 Tagalong = SkTEndian_SwapBE16(82), |
236 ((MalayRoman, SkTEndian_SwapBE16(83))) | 230 MalayRoman = SkTEndian_SwapBE16(83), |
237 ((MalayArabic, SkTEndian_SwapBE16(84))) | 231 MalayArabic = SkTEndian_SwapBE16(84), |
238 ((Amharic, SkTEndian_SwapBE16(85))) | 232 Amharic = SkTEndian_SwapBE16(85), |
239 ((Tigrinya, SkTEndian_SwapBE16(86))) | 233 Tigrinya = SkTEndian_SwapBE16(86), |
240 ((Galla, SkTEndian_SwapBE16(87))) | 234 Galla = SkTEndian_SwapBE16(87), |
241 ((Somali, SkTEndian_SwapBE16(88))) | 235 Somali = SkTEndian_SwapBE16(88), |
242 ((Swahili, SkTEndian_SwapBE16(89))) | 236 Swahili = SkTEndian_SwapBE16(89), |
243 ((Kinyarwanda_Ruanda, SkTEndian_SwapBE16(90))) | 237 Kinyarwanda_Ruanda = SkTEndian_SwapBE16(90), |
244 ((Rundi, SkTEndian_SwapBE16(91))) | 238 Rundi = SkTEndian_SwapBE16(91), |
245 ((Nyanja_Chewa, SkTEndian_SwapBE16(92))) | 239 Nyanja_Chewa = SkTEndian_SwapBE16(92), |
246 ((Malagasy, SkTEndian_SwapBE16(93))) | 240 Malagasy = SkTEndian_SwapBE16(93), |
247 ((Esperanto, SkTEndian_SwapBE16(94))) | 241 Esperanto = SkTEndian_SwapBE16(94), |
248 ((Welsh, SkTEndian_SwapBE16(128))) | 242 Welsh = SkTEndian_SwapBE16(128), |
249 ((Basque, SkTEndian_SwapBE16(129))) | 243 Basque = SkTEndian_SwapBE16(129), |
250 ((Catalan, SkTEndian_SwapBE16(130))) | 244 Catalan = SkTEndian_SwapBE16(130), |
251 ((Latin, SkTEndian_SwapBE16(131))) | 245 Latin = SkTEndian_SwapBE16(131), |
252 ((Quenchua, SkTEndian_SwapBE16(132))) | 246 Quenchua = SkTEndian_SwapBE16(132), |
253 ((Guarani, SkTEndian_SwapBE16(133))) | 247 Guarani = SkTEndian_SwapBE16(133), |
254 ((Aymara, SkTEndian_SwapBE16(134))) | 248 Aymara = SkTEndian_SwapBE16(134), |
255 ((Tatar, SkTEndian_SwapBE16(135))) | 249 Tatar = SkTEndian_SwapBE16(135), |
256 ((Uighur, SkTEndian_SwapBE16(136))) | 250 Uighur = SkTEndian_SwapBE16(136), |
257 ((Dzongkha, SkTEndian_SwapBE16(137))) | 251 Dzongkha = SkTEndian_SwapBE16(137), |
258 ((JavaneseRoman, SkTEndian_SwapBE16(138))) | 252 JavaneseRoman = SkTEndian_SwapBE16(138), |
259 ((SundaneseRoman, SkTEndian_SwapBE16(139))) | 253 SundaneseRoman = SkTEndian_SwapBE16(139), |
260 ((Galician, SkTEndian_SwapBE16(140))) | 254 Galician = SkTEndian_SwapBE16(140), |
261 ((Afrikaans, SkTEndian_SwapBE16(141))) | 255 Afrikaans = SkTEndian_SwapBE16(141), |
262 ((Breton, SkTEndian_SwapBE16(142))) | 256 Breton = SkTEndian_SwapBE16(142), |
263 ((Inuktitut, SkTEndian_SwapBE16(143))) | 257 Inuktitut = SkTEndian_SwapBE16(143), |
264 ((ScottishGaelic, SkTEndian_SwapBE16(144))) | 258 ScottishGaelic = SkTEndian_SwapBE16(144), |
265 ((ManxGaelic, SkTEndian_SwapBE16(145))) | 259 ManxGaelic = SkTEndian_SwapBE16(145), |
266 ((IrishGaelicWithLenition, SkTEndian_SwapBE16(146))) | 260 IrishGaelicWithLenition = SkTEndian_SwapBE16(146), |
267 ((Tongan, SkTEndian_SwapBE16(147))) | 261 Tongan = SkTEndian_SwapBE16(147), |
268 ((GreekPolytonic, SkTEndian_SwapBE16(148))) | 262 GreekPolytonic = SkTEndian_SwapBE16(148), |
269 ((Greenlandic, SkTEndian_SwapBE16(149))) | 263 Greenlandic = SkTEndian_SwapBE16(149), |
270 ((AzerbaijaniRoman, SkTEndian_SwapBE16(150))) | 264 AzerbaijaniRoman = SkTEndian_SwapBE16(150), |
271 SK_SEQ_END, | 265 } value; |
272 (value)SK_SEQ_END) | |
273 } macintosh; | 266 } macintosh; |
274 | 267 |
275 /** These are known as LCIDs. | 268 /** These are known as LCIDs. |
276 * On Windows the current set can be had from EnumSystemLocalesEx a
nd LocaleNameToLCID. | 269 * On Windows the current set can be had from EnumSystemLocalesEx a
nd LocaleNameToLCID. |
277 */ | 270 */ |
278 struct Windows { | 271 struct Windows { |
279 SK_TYPED_ENUM(Value, SK_OT_USHORT, | 272 enum Value : SK_OT_USHORT { |
280 ((Afrikaans_SouthAfrica, SkTEndian_SwapBE16(0x0436))) | 273 Afrikaans_SouthAfrica = SkTEndian_SwapBE16(0x0436), |
281 ((Albanian_Albania, SkTEndian_SwapBE16(0x041C))) | 274 Albanian_Albania = SkTEndian_SwapBE16(0x041C), |
282 ((Alsatian_France, SkTEndian_SwapBE16(0x0484))) | 275 Alsatian_France = SkTEndian_SwapBE16(0x0484), |
283 ((Amharic_Ethiopia, SkTEndian_SwapBE16(0x045E))) | 276 Amharic_Ethiopia = SkTEndian_SwapBE16(0x045E), |
284 ((Arabic_Algeria, SkTEndian_SwapBE16(0x1401))) | 277 Arabic_Algeria = SkTEndian_SwapBE16(0x1401), |
285 ((Arabic_Bahrain, SkTEndian_SwapBE16(0x3C01))) | 278 Arabic_Bahrain = SkTEndian_SwapBE16(0x3C01), |
286 ((Arabic_Egypt, SkTEndian_SwapBE16(0x0C01))) | 279 Arabic_Egypt = SkTEndian_SwapBE16(0x0C01), |
287 ((Arabic_Iraq, SkTEndian_SwapBE16(0x0801))) | 280 Arabic_Iraq = SkTEndian_SwapBE16(0x0801), |
288 ((Arabic_Jordan, SkTEndian_SwapBE16(0x2C01))) | 281 Arabic_Jordan = SkTEndian_SwapBE16(0x2C01), |
289 ((Arabic_Kuwait, SkTEndian_SwapBE16(0x3401))) | 282 Arabic_Kuwait = SkTEndian_SwapBE16(0x3401), |
290 ((Arabic_Lebanon, SkTEndian_SwapBE16(0x3001))) | 283 Arabic_Lebanon = SkTEndian_SwapBE16(0x3001), |
291 ((Arabic_Libya, SkTEndian_SwapBE16(0x1001))) | 284 Arabic_Libya = SkTEndian_SwapBE16(0x1001), |
292 ((Arabic_Morocco, SkTEndian_SwapBE16(0x1801))) | 285 Arabic_Morocco = SkTEndian_SwapBE16(0x1801), |
293 ((Arabic_Oman, SkTEndian_SwapBE16(0x2001))) | 286 Arabic_Oman = SkTEndian_SwapBE16(0x2001), |
294 ((Arabic_Qatar, SkTEndian_SwapBE16(0x4001))) | 287 Arabic_Qatar = SkTEndian_SwapBE16(0x4001), |
295 ((Arabic_SaudiArabia, SkTEndian_SwapBE16(0x0401))) | 288 Arabic_SaudiArabia = SkTEndian_SwapBE16(0x0401), |
296 ((Arabic_Syria, SkTEndian_SwapBE16(0x2801))) | 289 Arabic_Syria = SkTEndian_SwapBE16(0x2801), |
297 ((Arabic_Tunisia, SkTEndian_SwapBE16(0x1C01))) | 290 Arabic_Tunisia = SkTEndian_SwapBE16(0x1C01), |
298 ((Arabic_UAE, SkTEndian_SwapBE16(0x3801))) | 291 Arabic_UAE = SkTEndian_SwapBE16(0x3801), |
299 ((Arabic_Yemen, SkTEndian_SwapBE16(0x2401))) | 292 Arabic_Yemen = SkTEndian_SwapBE16(0x2401), |
300 ((Armenian_Armenia, SkTEndian_SwapBE16(0x042B))) | 293 Armenian_Armenia = SkTEndian_SwapBE16(0x042B), |
301 ((Assamese_India, SkTEndian_SwapBE16(0x044D))) | 294 Assamese_India = SkTEndian_SwapBE16(0x044D), |
302 ((AzeriCyrillic_Azerbaijan, SkTEndian_SwapBE16(0x082C))) | 295 AzeriCyrillic_Azerbaijan = SkTEndian_SwapBE16(0x082C), |
303 ((AzeriLatin_Azerbaijan, SkTEndian_SwapBE16(0x042C))) | 296 AzeriLatin_Azerbaijan = SkTEndian_SwapBE16(0x042C), |
304 ((Bashkir_Russia, SkTEndian_SwapBE16(0x046D))) | 297 Bashkir_Russia = SkTEndian_SwapBE16(0x046D), |
305 ((Basque_Basque, SkTEndian_SwapBE16(0x042D))) | 298 Basque_Basque = SkTEndian_SwapBE16(0x042D), |
306 ((Belarusian_Belarus, SkTEndian_SwapBE16(0x0423))) | 299 Belarusian_Belarus = SkTEndian_SwapBE16(0x0423), |
307 ((Bengali_Bangladesh, SkTEndian_SwapBE16(0x0845))) | 300 Bengali_Bangladesh = SkTEndian_SwapBE16(0x0845), |
308 ((Bengali_India, SkTEndian_SwapBE16(0x0445))) | 301 Bengali_India = SkTEndian_SwapBE16(0x0445), |
309 ((BosnianCyrillic_BosniaAndHerzegovina, SkTEndian_SwapBE16(0
x201A))) | 302 BosnianCyrillic_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x
201A), |
310 ((BosnianLatin_BosniaAndHerzegovina, SkTEndian_SwapBE16(0x14
1A))) | 303 BosnianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x141
A), |
311 ((Breton_France, SkTEndian_SwapBE16(0x047E))) | 304 Breton_France = SkTEndian_SwapBE16(0x047E), |
312 ((Bulgarian_Bulgaria, SkTEndian_SwapBE16(0x0402))) | 305 Bulgarian_Bulgaria = SkTEndian_SwapBE16(0x0402), |
313 ((Catalan_Catalan, SkTEndian_SwapBE16(0x0403))) | 306 Catalan_Catalan = SkTEndian_SwapBE16(0x0403), |
314 ((Chinese_HongKongSAR, SkTEndian_SwapBE16(0x0C04))) | 307 Chinese_HongKongSAR = SkTEndian_SwapBE16(0x0C04), |
315 ((Chinese_MacaoSAR, SkTEndian_SwapBE16(0x1404))) | 308 Chinese_MacaoSAR = SkTEndian_SwapBE16(0x1404), |
316 ((Chinese_PeoplesRepublicOfChina, SkTEndian_SwapBE16(0x0804)
)) | 309 Chinese_PeoplesRepublicOfChina = SkTEndian_SwapBE16(0x0804), |
317 ((Chinese_Singapore, SkTEndian_SwapBE16(0x1004))) | 310 Chinese_Singapore = SkTEndian_SwapBE16(0x1004), |
318 ((Chinese_Taiwan, SkTEndian_SwapBE16(0x0404))) | 311 Chinese_Taiwan = SkTEndian_SwapBE16(0x0404), |
319 ((Corsican_France, SkTEndian_SwapBE16(0x0483))) | 312 Corsican_France = SkTEndian_SwapBE16(0x0483), |
320 ((Croatian_Croatia, SkTEndian_SwapBE16(0x041A))) | 313 Croatian_Croatia = SkTEndian_SwapBE16(0x041A), |
321 ((CroatianLatin_BosniaAndHerzegovina, SkTEndian_SwapBE16(0x1
01A))) | 314 CroatianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x10
1A), |
322 ((Czech_CzechRepublic, SkTEndian_SwapBE16(0x0405))) | 315 Czech_CzechRepublic = SkTEndian_SwapBE16(0x0405), |
323 ((Danish_Denmark, SkTEndian_SwapBE16(0x0406))) | 316 Danish_Denmark = SkTEndian_SwapBE16(0x0406), |
324 ((Dari_Afghanistan, SkTEndian_SwapBE16(0x048C))) | 317 Dari_Afghanistan = SkTEndian_SwapBE16(0x048C), |
325 ((Divehi_Maldives, SkTEndian_SwapBE16(0x0465))) | 318 Divehi_Maldives = SkTEndian_SwapBE16(0x0465), |
326 ((Dutch_Belgium, SkTEndian_SwapBE16(0x0813))) | 319 Dutch_Belgium = SkTEndian_SwapBE16(0x0813), |
327 ((Dutch_Netherlands, SkTEndian_SwapBE16(0x0413))) | 320 Dutch_Netherlands = SkTEndian_SwapBE16(0x0413), |
328 ((English_Australia, SkTEndian_SwapBE16(0x0C09))) | 321 English_Australia = SkTEndian_SwapBE16(0x0C09), |
329 ((English_Belize, SkTEndian_SwapBE16(0x2809))) | 322 English_Belize = SkTEndian_SwapBE16(0x2809), |
330 ((English_Canada, SkTEndian_SwapBE16(0x1009))) | 323 English_Canada = SkTEndian_SwapBE16(0x1009), |
331 ((English_Caribbean, SkTEndian_SwapBE16(0x2409))) | 324 English_Caribbean = SkTEndian_SwapBE16(0x2409), |
332 ((English_India, SkTEndian_SwapBE16(0x4009))) | 325 English_India = SkTEndian_SwapBE16(0x4009), |
333 ((English_Ireland, SkTEndian_SwapBE16(0x1809))) | 326 English_Ireland = SkTEndian_SwapBE16(0x1809), |
334 ((English_Jamaica, SkTEndian_SwapBE16(0x2009))) | 327 English_Jamaica = SkTEndian_SwapBE16(0x2009), |
335 ((English_Malaysia, SkTEndian_SwapBE16(0x4409))) | 328 English_Malaysia = SkTEndian_SwapBE16(0x4409), |
336 ((English_NewZealand, SkTEndian_SwapBE16(0x1409))) | 329 English_NewZealand = SkTEndian_SwapBE16(0x1409), |
337 ((English_RepublicOfThePhilippines, SkTEndian_SwapBE16(0x340
9))) | 330 English_RepublicOfThePhilippines = SkTEndian_SwapBE16(0x3409
), |
338 ((English_Singapore, SkTEndian_SwapBE16(0x4809))) | 331 English_Singapore = SkTEndian_SwapBE16(0x4809), |
339 ((English_SouthAfrica, SkTEndian_SwapBE16(0x1C09))) | 332 English_SouthAfrica = SkTEndian_SwapBE16(0x1C09), |
340 ((English_TrinidadAndTobago, SkTEndian_SwapBE16(0x2C09))) | 333 English_TrinidadAndTobago = SkTEndian_SwapBE16(0x2C09), |
341 ((English_UnitedKingdom, SkTEndian_SwapBE16(0x0809))) | 334 English_UnitedKingdom = SkTEndian_SwapBE16(0x0809), |
342 ((English_UnitedStates, SkTEndian_SwapBE16(0x0409))) | 335 English_UnitedStates = SkTEndian_SwapBE16(0x0409), |
343 ((English_Zimbabwe, SkTEndian_SwapBE16(0x3009))) | 336 English_Zimbabwe = SkTEndian_SwapBE16(0x3009), |
344 ((Estonian_Estonia, SkTEndian_SwapBE16(0x0425))) | 337 Estonian_Estonia = SkTEndian_SwapBE16(0x0425), |
345 ((Faroese_FaroeIslands, SkTEndian_SwapBE16(0x0438))) | 338 Faroese_FaroeIslands = SkTEndian_SwapBE16(0x0438), |
346 ((Filipino_Philippines, SkTEndian_SwapBE16(0x0464))) | 339 Filipino_Philippines = SkTEndian_SwapBE16(0x0464), |
347 ((Finnish_Finland, SkTEndian_SwapBE16(0x040B))) | 340 Finnish_Finland = SkTEndian_SwapBE16(0x040B), |
348 ((French_Belgium, SkTEndian_SwapBE16(0x080C))) | 341 French_Belgium = SkTEndian_SwapBE16(0x080C), |
349 ((French_Canada, SkTEndian_SwapBE16(0x0C0C))) | 342 French_Canada = SkTEndian_SwapBE16(0x0C0C), |
350 ((French_France, SkTEndian_SwapBE16(0x040C))) | 343 French_France = SkTEndian_SwapBE16(0x040C), |
351 ((French_Luxembourg, SkTEndian_SwapBE16(0x140c))) | 344 French_Luxembourg = SkTEndian_SwapBE16(0x140c), |
352 ((French_PrincipalityOfMonoco, SkTEndian_SwapBE16(0x180C))) | 345 French_PrincipalityOfMonoco = SkTEndian_SwapBE16(0x180C), |
353 ((French_Switzerland, SkTEndian_SwapBE16(0x100C))) | 346 French_Switzerland = SkTEndian_SwapBE16(0x100C), |
354 ((Frisian_Netherlands, SkTEndian_SwapBE16(0x0462))) | 347 Frisian_Netherlands = SkTEndian_SwapBE16(0x0462), |
355 ((Galician_Galician, SkTEndian_SwapBE16(0x0456))) | 348 Galician_Galician = SkTEndian_SwapBE16(0x0456), |
356 ((Georgian_Georgia, SkTEndian_SwapBE16(0x0437))) | 349 Georgian_Georgia = SkTEndian_SwapBE16(0x0437), |
357 ((German_Austria, SkTEndian_SwapBE16(0x0C07))) | 350 German_Austria = SkTEndian_SwapBE16(0x0C07), |
358 ((German_Germany, SkTEndian_SwapBE16(0x0407))) | 351 German_Germany = SkTEndian_SwapBE16(0x0407), |
359 ((German_Liechtenstein, SkTEndian_SwapBE16(0x1407))) | 352 German_Liechtenstein = SkTEndian_SwapBE16(0x1407), |
360 ((German_Luxembourg, SkTEndian_SwapBE16(0x1007))) | 353 German_Luxembourg = SkTEndian_SwapBE16(0x1007), |
361 ((German_Switzerland, SkTEndian_SwapBE16(0x0807))) | 354 German_Switzerland = SkTEndian_SwapBE16(0x0807), |
362 ((Greek_Greece, SkTEndian_SwapBE16(0x0408))) | 355 Greek_Greece = SkTEndian_SwapBE16(0x0408), |
363 ((Greenlandic_Greenland, SkTEndian_SwapBE16(0x046F))) | 356 Greenlandic_Greenland = SkTEndian_SwapBE16(0x046F), |
364 ((Gujarati_India, SkTEndian_SwapBE16(0x0447))) | 357 Gujarati_India = SkTEndian_SwapBE16(0x0447), |
365 ((HausaLatin_Nigeria, SkTEndian_SwapBE16(0x0468))) | 358 HausaLatin_Nigeria = SkTEndian_SwapBE16(0x0468), |
366 ((Hebrew_Israel, SkTEndian_SwapBE16(0x040D))) | 359 Hebrew_Israel = SkTEndian_SwapBE16(0x040D), |
367 ((Hindi_India, SkTEndian_SwapBE16(0x0439))) | 360 Hindi_India = SkTEndian_SwapBE16(0x0439), |
368 ((Hungarian_Hungary, SkTEndian_SwapBE16(0x040E))) | 361 Hungarian_Hungary = SkTEndian_SwapBE16(0x040E), |
369 ((Icelandic_Iceland, SkTEndian_SwapBE16(0x040F))) | 362 Icelandic_Iceland = SkTEndian_SwapBE16(0x040F), |
370 ((Igbo_Nigeria, SkTEndian_SwapBE16(0x0470))) | 363 Igbo_Nigeria = SkTEndian_SwapBE16(0x0470), |
371 ((Indonesian_Indonesia, SkTEndian_SwapBE16(0x0421))) | 364 Indonesian_Indonesia = SkTEndian_SwapBE16(0x0421), |
372 ((Inuktitut_Canada, SkTEndian_SwapBE16(0x045D))) | 365 Inuktitut_Canada = SkTEndian_SwapBE16(0x045D), |
373 ((InuktitutLatin_Canada, SkTEndian_SwapBE16(0x085D))) | 366 InuktitutLatin_Canada = SkTEndian_SwapBE16(0x085D), |
374 ((Irish_Ireland, SkTEndian_SwapBE16(0x083C))) | 367 Irish_Ireland = SkTEndian_SwapBE16(0x083C), |
375 ((isiXhosa_SouthAfrica, SkTEndian_SwapBE16(0x0434))) | 368 isiXhosa_SouthAfrica = SkTEndian_SwapBE16(0x0434), |
376 ((isiZulu_SouthAfrica, SkTEndian_SwapBE16(0x0435))) | 369 isiZulu_SouthAfrica = SkTEndian_SwapBE16(0x0435), |
377 ((Italian_Italy, SkTEndian_SwapBE16(0x0410))) | 370 Italian_Italy = SkTEndian_SwapBE16(0x0410), |
378 ((Italian_Switzerland, SkTEndian_SwapBE16(0x0810))) | 371 Italian_Switzerland = SkTEndian_SwapBE16(0x0810), |
379 ((Japanese_Japan, SkTEndian_SwapBE16(0x0411))) | 372 Japanese_Japan = SkTEndian_SwapBE16(0x0411), |
380 ((Kannada_India, SkTEndian_SwapBE16(0x044B))) | 373 Kannada_India = SkTEndian_SwapBE16(0x044B), |
381 ((Kazakh_Kazakhstan, SkTEndian_SwapBE16(0x043F))) | 374 Kazakh_Kazakhstan = SkTEndian_SwapBE16(0x043F), |
382 ((Khmer_Cambodia, SkTEndian_SwapBE16(0x0453))) | 375 Khmer_Cambodia = SkTEndian_SwapBE16(0x0453), |
383 ((Kiche_Guatemala, SkTEndian_SwapBE16(0x0486))) | 376 Kiche_Guatemala = SkTEndian_SwapBE16(0x0486), |
384 ((Kinyarwanda_Rwanda, SkTEndian_SwapBE16(0x0487))) | 377 Kinyarwanda_Rwanda = SkTEndian_SwapBE16(0x0487), |
385 ((Kiswahili_Kenya, SkTEndian_SwapBE16(0x0441))) | 378 Kiswahili_Kenya = SkTEndian_SwapBE16(0x0441), |
386 ((Konkani_India, SkTEndian_SwapBE16(0x0457))) | 379 Konkani_India = SkTEndian_SwapBE16(0x0457), |
387 ((Korean_Korea, SkTEndian_SwapBE16(0x0412))) | 380 Korean_Korea = SkTEndian_SwapBE16(0x0412), |
388 ((Kyrgyz_Kyrgyzstan, SkTEndian_SwapBE16(0x0440))) | 381 Kyrgyz_Kyrgyzstan = SkTEndian_SwapBE16(0x0440), |
389 ((Lao_LaoPDR, SkTEndian_SwapBE16(0x0454))) | 382 Lao_LaoPDR = SkTEndian_SwapBE16(0x0454), |
390 ((Latvian_Latvia, SkTEndian_SwapBE16(0x0426))) | 383 Latvian_Latvia = SkTEndian_SwapBE16(0x0426), |
391 ((Lithuanian_Lithuania, SkTEndian_SwapBE16(0x0427))) | 384 Lithuanian_Lithuania = SkTEndian_SwapBE16(0x0427), |
392 ((LowerSorbian_Germany, SkTEndian_SwapBE16(0x082E))) | 385 LowerSorbian_Germany = SkTEndian_SwapBE16(0x082E), |
393 ((Luxembourgish_Luxembourg, SkTEndian_SwapBE16(0x046E))) | 386 Luxembourgish_Luxembourg = SkTEndian_SwapBE16(0x046E), |
394 ((MacedonianFYROM_FormerYugoslavRepublicOfMacedonia, SkTEndi
an_SwapBE16(0x042F))) | 387 MacedonianFYROM_FormerYugoslavRepublicOfMacedonia = SkTEndia
n_SwapBE16(0x042F), |
395 ((Malay_BruneiDarussalam, SkTEndian_SwapBE16(0x083E))) | 388 Malay_BruneiDarussalam = SkTEndian_SwapBE16(0x083E), |
396 ((Malay_Malaysia, SkTEndian_SwapBE16(0x043E))) | 389 Malay_Malaysia = SkTEndian_SwapBE16(0x043E), |
397 ((Malayalam_India, SkTEndian_SwapBE16(0x044C))) | 390 Malayalam_India = SkTEndian_SwapBE16(0x044C), |
398 ((Maltese_Malta, SkTEndian_SwapBE16(0x043A))) | 391 Maltese_Malta = SkTEndian_SwapBE16(0x043A), |
399 ((Maori_NewZealand, SkTEndian_SwapBE16(0x0481))) | 392 Maori_NewZealand = SkTEndian_SwapBE16(0x0481), |
400 ((Mapudungun_Chile, SkTEndian_SwapBE16(0x047A))) | 393 Mapudungun_Chile = SkTEndian_SwapBE16(0x047A), |
401 ((Marathi_India, SkTEndian_SwapBE16(0x044E))) | 394 Marathi_India = SkTEndian_SwapBE16(0x044E), |
402 ((Mohawk_Mohawk, SkTEndian_SwapBE16(0x047C))) | 395 Mohawk_Mohawk = SkTEndian_SwapBE16(0x047C), |
403 ((MongolianCyrillic_Mongolia, SkTEndian_SwapBE16(0x0450))) | 396 MongolianCyrillic_Mongolia = SkTEndian_SwapBE16(0x0450), |
404 ((MongolianTraditional_PeoplesRepublicOfChina, SkTEndian_Swa
pBE16(0x0850))) | 397 MongolianTraditional_PeoplesRepublicOfChina = SkTEndian_Swap
BE16(0x0850), |
405 ((Nepali_Nepal, SkTEndian_SwapBE16(0x0461))) | 398 Nepali_Nepal = SkTEndian_SwapBE16(0x0461), |
406 ((NorwegianBokmal_Norway, SkTEndian_SwapBE16(0x0414))) | 399 NorwegianBokmal_Norway = SkTEndian_SwapBE16(0x0414), |
407 ((NorwegianNynorsk_Norway, SkTEndian_SwapBE16(0x0814))) | 400 NorwegianNynorsk_Norway = SkTEndian_SwapBE16(0x0814), |
408 ((Occitan_France, SkTEndian_SwapBE16(0x0482))) | 401 Occitan_France = SkTEndian_SwapBE16(0x0482), |
409 ((Odia_India, SkTEndian_SwapBE16(0x0448))) | 402 Odia_India = SkTEndian_SwapBE16(0x0448), |
410 ((Pashto_Afghanistan, SkTEndian_SwapBE16(0x0463))) | 403 Pashto_Afghanistan = SkTEndian_SwapBE16(0x0463), |
411 ((Polish_Poland, SkTEndian_SwapBE16(0x0415))) | 404 Polish_Poland = SkTEndian_SwapBE16(0x0415), |
412 ((Portuguese_Brazil, SkTEndian_SwapBE16(0x0416))) | 405 Portuguese_Brazil = SkTEndian_SwapBE16(0x0416), |
413 ((Portuguese_Portugal, SkTEndian_SwapBE16(0x0816))) | 406 Portuguese_Portugal = SkTEndian_SwapBE16(0x0816), |
414 ((Punjabi_India, SkTEndian_SwapBE16(0x0446))) | 407 Punjabi_India = SkTEndian_SwapBE16(0x0446), |
415 ((Quechua_Bolivia, SkTEndian_SwapBE16(0x046B))) | 408 Quechua_Bolivia = SkTEndian_SwapBE16(0x046B), |
416 ((Quechua_Ecuador, SkTEndian_SwapBE16(0x086B))) | 409 Quechua_Ecuador = SkTEndian_SwapBE16(0x086B), |
417 ((Quechua_Peru, SkTEndian_SwapBE16(0x0C6B))) | 410 Quechua_Peru = SkTEndian_SwapBE16(0x0C6B), |
418 ((Romanian_Romania, SkTEndian_SwapBE16(0x0418))) | 411 Romanian_Romania = SkTEndian_SwapBE16(0x0418), |
419 ((Romansh_Switzerland, SkTEndian_SwapBE16(0x0417))) | 412 Romansh_Switzerland = SkTEndian_SwapBE16(0x0417), |
420 ((Russian_Russia, SkTEndian_SwapBE16(0x0419))) | 413 Russian_Russia = SkTEndian_SwapBE16(0x0419), |
421 ((SamiInari_Finland, SkTEndian_SwapBE16(0x243B))) | 414 SamiInari_Finland = SkTEndian_SwapBE16(0x243B), |
422 ((SamiLule_Norway, SkTEndian_SwapBE16(0x103B))) | 415 SamiLule_Norway = SkTEndian_SwapBE16(0x103B), |
423 ((SamiLule_Sweden, SkTEndian_SwapBE16(0x143B))) | 416 SamiLule_Sweden = SkTEndian_SwapBE16(0x143B), |
424 ((SamiNorthern_Finland, SkTEndian_SwapBE16(0x0C3B))) | 417 SamiNorthern_Finland = SkTEndian_SwapBE16(0x0C3B), |
425 ((SamiNorthern_Norway, SkTEndian_SwapBE16(0x043B))) | 418 SamiNorthern_Norway = SkTEndian_SwapBE16(0x043B), |
426 ((SamiNorthern_Sweden, SkTEndian_SwapBE16(0x083B))) | 419 SamiNorthern_Sweden = SkTEndian_SwapBE16(0x083B), |
427 ((SamiSkolt_Finland, SkTEndian_SwapBE16(0x203B))) | 420 SamiSkolt_Finland = SkTEndian_SwapBE16(0x203B), |
428 ((SamiSouthern_Norway, SkTEndian_SwapBE16(0x183B))) | 421 SamiSouthern_Norway = SkTEndian_SwapBE16(0x183B), |
429 ((SamiSouthern_Sweden, SkTEndian_SwapBE16(0x1C3B))) | 422 SamiSouthern_Sweden = SkTEndian_SwapBE16(0x1C3B), |
430 ((Sanskrit_India, SkTEndian_SwapBE16(0x044F))) | 423 Sanskrit_India = SkTEndian_SwapBE16(0x044F), |
431 ((SerbianCyrillic_BosniaAndHerzegovina, SkTEndian_SwapBE16(0
x1C1A))) | 424 SerbianCyrillic_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x
1C1A), |
432 ((SerbianCyrillic_Serbia, SkTEndian_SwapBE16(0x0C1A))) | 425 SerbianCyrillic_Serbia = SkTEndian_SwapBE16(0x0C1A), |
433 ((SerbianLatin_BosniaAndHerzegovina, SkTEndian_SwapBE16(0x18
1A))) | 426 SerbianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x181
A), |
434 ((SerbianLatin_Serbia, SkTEndian_SwapBE16(0x081A))) | 427 SerbianLatin_Serbia = SkTEndian_SwapBE16(0x081A), |
435 ((SesothoSaLeboa_SouthAfrica, SkTEndian_SwapBE16(0x046C))) | 428 SesothoSaLeboa_SouthAfrica = SkTEndian_SwapBE16(0x046C), |
436 ((Setswana_SouthAfrica, SkTEndian_SwapBE16(0x0432))) | 429 Setswana_SouthAfrica = SkTEndian_SwapBE16(0x0432), |
437 ((Sinhala_SriLanka, SkTEndian_SwapBE16(0x045B))) | 430 Sinhala_SriLanka = SkTEndian_SwapBE16(0x045B), |
438 ((Slovak_Slovakia, SkTEndian_SwapBE16(0x041B))) | 431 Slovak_Slovakia = SkTEndian_SwapBE16(0x041B), |
439 ((Slovenian_Slovenia, SkTEndian_SwapBE16(0x0424))) | 432 Slovenian_Slovenia = SkTEndian_SwapBE16(0x0424), |
440 ((Spanish_Argentina, SkTEndian_SwapBE16(0x2C0A))) | 433 Spanish_Argentina = SkTEndian_SwapBE16(0x2C0A), |
441 ((Spanish_Bolivia, SkTEndian_SwapBE16(0x400A))) | 434 Spanish_Bolivia = SkTEndian_SwapBE16(0x400A), |
442 ((Spanish_Chile, SkTEndian_SwapBE16(0x340A))) | 435 Spanish_Chile = SkTEndian_SwapBE16(0x340A), |
443 ((Spanish_Colombia, SkTEndian_SwapBE16(0x240A))) | 436 Spanish_Colombia = SkTEndian_SwapBE16(0x240A), |
444 ((Spanish_CostaRica, SkTEndian_SwapBE16(0x140A))) | 437 Spanish_CostaRica = SkTEndian_SwapBE16(0x140A), |
445 ((Spanish_DominicanRepublic, SkTEndian_SwapBE16(0x1C0A))) | 438 Spanish_DominicanRepublic = SkTEndian_SwapBE16(0x1C0A), |
446 ((Spanish_Ecuador, SkTEndian_SwapBE16(0x300A))) | 439 Spanish_Ecuador = SkTEndian_SwapBE16(0x300A), |
447 ((Spanish_ElSalvador, SkTEndian_SwapBE16(0x440A))) | 440 Spanish_ElSalvador = SkTEndian_SwapBE16(0x440A), |
448 ((Spanish_Guatemala, SkTEndian_SwapBE16(0x100A))) | 441 Spanish_Guatemala = SkTEndian_SwapBE16(0x100A), |
449 ((Spanish_Honduras, SkTEndian_SwapBE16(0x480A))) | 442 Spanish_Honduras = SkTEndian_SwapBE16(0x480A), |
450 ((Spanish_Mexico, SkTEndian_SwapBE16(0x080A))) | 443 Spanish_Mexico = SkTEndian_SwapBE16(0x080A), |
451 ((Spanish_Nicaragua, SkTEndian_SwapBE16(0x4C0A))) | 444 Spanish_Nicaragua = SkTEndian_SwapBE16(0x4C0A), |
452 ((Spanish_Panama, SkTEndian_SwapBE16(0x180A))) | 445 Spanish_Panama = SkTEndian_SwapBE16(0x180A), |
453 ((Spanish_Paraguay, SkTEndian_SwapBE16(0x3C0A))) | 446 Spanish_Paraguay = SkTEndian_SwapBE16(0x3C0A), |
454 ((Spanish_Peru, SkTEndian_SwapBE16(0x280A))) | 447 Spanish_Peru = SkTEndian_SwapBE16(0x280A), |
455 ((Spanish_PuertoRico, SkTEndian_SwapBE16(0x500A))) | 448 Spanish_PuertoRico = SkTEndian_SwapBE16(0x500A), |
456 ((SpanishModernSort_Spain, SkTEndian_SwapBE16(0x0C0A))) | 449 SpanishModernSort_Spain = SkTEndian_SwapBE16(0x0C0A), |
457 ((SpanishTraditionalSort_Spain, SkTEndian_SwapBE16(0x040A))) | 450 SpanishTraditionalSort_Spain = SkTEndian_SwapBE16(0x040A), |
458 ((Spanish_UnitedStates, SkTEndian_SwapBE16(0x540A))) | 451 Spanish_UnitedStates = SkTEndian_SwapBE16(0x540A), |
459 ((Spanish_Uruguay, SkTEndian_SwapBE16(0x380A))) | 452 Spanish_Uruguay = SkTEndian_SwapBE16(0x380A), |
460 ((Spanish_Venezuela, SkTEndian_SwapBE16(0x200A))) | 453 Spanish_Venezuela = SkTEndian_SwapBE16(0x200A), |
461 ((Sweden_Finland, SkTEndian_SwapBE16(0x081D))) | 454 Sweden_Finland = SkTEndian_SwapBE16(0x081D), |
462 ((Swedish_Sweden, SkTEndian_SwapBE16(0x041D))) | 455 Swedish_Sweden = SkTEndian_SwapBE16(0x041D), |
463 ((Syriac_Syria, SkTEndian_SwapBE16(0x045A))) | 456 Syriac_Syria = SkTEndian_SwapBE16(0x045A), |
464 ((TajikCyrillic_Tajikistan, SkTEndian_SwapBE16(0x0428))) | 457 TajikCyrillic_Tajikistan = SkTEndian_SwapBE16(0x0428), |
465 ((TamazightLatin_Algeria, SkTEndian_SwapBE16(0x085F))) | 458 TamazightLatin_Algeria = SkTEndian_SwapBE16(0x085F), |
466 ((Tamil_India, SkTEndian_SwapBE16(0x0449))) | 459 Tamil_India = SkTEndian_SwapBE16(0x0449), |
467 ((Tatar_Russia, SkTEndian_SwapBE16(0x0444))) | 460 Tatar_Russia = SkTEndian_SwapBE16(0x0444), |
468 ((Telugu_India, SkTEndian_SwapBE16(0x044A))) | 461 Telugu_India = SkTEndian_SwapBE16(0x044A), |
469 ((Thai_Thailand, SkTEndian_SwapBE16(0x041E))) | 462 Thai_Thailand = SkTEndian_SwapBE16(0x041E), |
470 ((Tibetan_PRC, SkTEndian_SwapBE16(0x0451))) | 463 Tibetan_PRC = SkTEndian_SwapBE16(0x0451), |
471 ((Turkish_Turkey, SkTEndian_SwapBE16(0x041F))) | 464 Turkish_Turkey = SkTEndian_SwapBE16(0x041F), |
472 ((Turkmen_Turkmenistan, SkTEndian_SwapBE16(0x0442))) | 465 Turkmen_Turkmenistan = SkTEndian_SwapBE16(0x0442), |
473 ((Uighur_PRC, SkTEndian_SwapBE16(0x0480))) | 466 Uighur_PRC = SkTEndian_SwapBE16(0x0480), |
474 ((Ukrainian_Ukraine, SkTEndian_SwapBE16(0x0422))) | 467 Ukrainian_Ukraine = SkTEndian_SwapBE16(0x0422), |
475 ((UpperSorbian_Germany, SkTEndian_SwapBE16(0x042E))) | 468 UpperSorbian_Germany = SkTEndian_SwapBE16(0x042E), |
476 ((Urdu_IslamicRepublicOfPakistan, SkTEndian_SwapBE16(0x0420)
)) | 469 Urdu_IslamicRepublicOfPakistan = SkTEndian_SwapBE16(0x0420), |
477 ((UzbekCyrillic_Uzbekistan, SkTEndian_SwapBE16(0x0843))) | 470 UzbekCyrillic_Uzbekistan = SkTEndian_SwapBE16(0x0843), |
478 ((UzbekLatin_Uzbekistan, SkTEndian_SwapBE16(0x0443))) | 471 UzbekLatin_Uzbekistan = SkTEndian_SwapBE16(0x0443), |
479 ((Vietnamese_Vietnam, SkTEndian_SwapBE16(0x042A))) | 472 Vietnamese_Vietnam = SkTEndian_SwapBE16(0x042A), |
480 ((Welsh_UnitedKingdom, SkTEndian_SwapBE16(0x0452))) | 473 Welsh_UnitedKingdom = SkTEndian_SwapBE16(0x0452), |
481 ((Wolof_Senegal, SkTEndian_SwapBE16(0x0488))) | 474 Wolof_Senegal = SkTEndian_SwapBE16(0x0488), |
482 ((Yakut_Russia, SkTEndian_SwapBE16(0x0485))) | 475 Yakut_Russia = SkTEndian_SwapBE16(0x0485), |
483 ((Yi_PRC, SkTEndian_SwapBE16(0x0478))) | 476 Yi_PRC = SkTEndian_SwapBE16(0x0478), |
484 ((Yoruba_Nigeria, SkTEndian_SwapBE16(0x046A))) | 477 Yoruba_Nigeria = SkTEndian_SwapBE16(0x046A), |
485 SK_SEQ_END, | 478 } value; |
486 (value)SK_SEQ_END) | |
487 } windows; | 479 } windows; |
488 } languageID; | 480 } languageID; |
489 | 481 |
490 /** NameIDs <= 0xFF are predefined. Those > 0xFF are font specific. */ | 482 /** NameIDs <= 0xFF are predefined. Those > 0xFF are font specific. */ |
491 union NameID { | 483 union NameID { |
492 /** A font specific name id which should be greater than 0xFF. */ | 484 /** A font specific name id which should be greater than 0xFF. */ |
493 SK_OT_USHORT fontSpecific; | 485 SK_OT_USHORT fontSpecific; |
494 struct Predefined { | 486 struct Predefined { |
495 SK_TYPED_ENUM(Value, SK_OT_USHORT, | 487 enum Value : SK_OT_USHORT { |
496 ((CopyrightNotice, SkTEndian_SwapBE16(0))) | 488 CopyrightNotice = SkTEndian_SwapBE16(0), |
497 ((FontFamilyName, SkTEndian_SwapBE16(1))) | 489 FontFamilyName = SkTEndian_SwapBE16(1), |
498 ((FontSubfamilyName, SkTEndian_SwapBE16(2))) | 490 FontSubfamilyName = SkTEndian_SwapBE16(2), |
499 ((UniqueFontIdentifier, SkTEndian_SwapBE16(3))) | 491 UniqueFontIdentifier = SkTEndian_SwapBE16(3), |
500 ((FullFontName, SkTEndian_SwapBE16(4))) | 492 FullFontName = SkTEndian_SwapBE16(4), |
501 ((VersionString, SkTEndian_SwapBE16(5))) //Version <number>.
<number> | 493 VersionString = SkTEndian_SwapBE16(5), //Version <number>.<n
umber> |
502 ((PostscriptName, SkTEndian_SwapBE16(6))) //See spec for con
straints. | 494 PostscriptName = SkTEndian_SwapBE16(6), //See spec for const
raints. |
503 ((Trademark, SkTEndian_SwapBE16(7))) | 495 Trademark = SkTEndian_SwapBE16(7), |
504 ((ManufacturerName, SkTEndian_SwapBE16(8))) | 496 ManufacturerName = SkTEndian_SwapBE16(8), |
505 ((Designer, SkTEndian_SwapBE16(9))) | 497 Designer = SkTEndian_SwapBE16(9), |
506 ((Description, SkTEndian_SwapBE16(10))) | 498 Description = SkTEndian_SwapBE16(10), |
507 ((URLVendor, SkTEndian_SwapBE16(11))) | 499 URLVendor = SkTEndian_SwapBE16(11), |
508 ((URLDesigner, SkTEndian_SwapBE16(12))) | 500 URLDesigner = SkTEndian_SwapBE16(12), |
509 ((LicenseDescription, SkTEndian_SwapBE16(13))) | 501 LicenseDescription = SkTEndian_SwapBE16(13), |
510 ((LicenseInfoURL, SkTEndian_SwapBE16(14))) | 502 LicenseInfoURL = SkTEndian_SwapBE16(14), |
511 ((PreferredFamily, SkTEndian_SwapBE16(16))) | 503 PreferredFamily = SkTEndian_SwapBE16(16), |
512 ((PreferredSubfamily, SkTEndian_SwapBE16(17))) | 504 PreferredSubfamily = SkTEndian_SwapBE16(17), |
513 ((CompatibleFullName, SkTEndian_SwapBE16(18))) | 505 CompatibleFullName = SkTEndian_SwapBE16(18), |
514 ((SampleText, SkTEndian_SwapBE16(19))) | 506 SampleText = SkTEndian_SwapBE16(19), |
515 ((PostscriptCIDFindfontName, SkTEndian_SwapBE16(20))) | 507 PostscriptCIDFindfontName = SkTEndian_SwapBE16(20), |
516 ((WWSFamilyName, SkTEndian_SwapBE16(21))) | 508 WWSFamilyName = SkTEndian_SwapBE16(21), |
517 ((WWSSubfamilyName, SkTEndian_SwapBE16(22))) | 509 WWSSubfamilyName = SkTEndian_SwapBE16(22), |
518 SK_SEQ_END, | 510 } value; |
519 (value)SK_SEQ_END) | |
520 } predefined; | 511 } predefined; |
521 } nameID; | 512 } nameID; |
522 | 513 |
523 /** The length of the string in SK_OT_BYTEs. */ | 514 /** The length of the string in SK_OT_BYTEs. */ |
524 SK_OT_USHORT length; | 515 SK_OT_USHORT length; |
525 | 516 |
526 /** Offset in SK_OT_BYTEs from start of string storage area | 517 /** Offset in SK_OT_BYTEs from start of string storage area |
527 * (see SkOTTableName::stringOffset). | 518 * (see SkOTTableName::stringOffset). |
528 */ | 519 */ |
529 SK_OT_USHORT offset; | 520 SK_OT_USHORT offset; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
575 | 566 |
576 #pragma pack(pop) | 567 #pragma pack(pop) |
577 | 568 |
578 | 569 |
579 static_assert(sizeof(SkOTTableName) == 6, "sizeof_SkOTTableName_not_6"); | 570 static_assert(sizeof(SkOTTableName) == 6, "sizeof_SkOTTableName_not_6"); |
580 static_assert(sizeof(SkOTTableName::Format1Ext) == 2, "sizeof_SkOTTableNameF1_no
t_2"); | 571 static_assert(sizeof(SkOTTableName::Format1Ext) == 2, "sizeof_SkOTTableNameF1_no
t_2"); |
581 static_assert(sizeof(SkOTTableName::Format1Ext::LangTagRecord) == 4, "sizeof_SkO
TTableNameLangTagRecord_not_4"); | 572 static_assert(sizeof(SkOTTableName::Format1Ext::LangTagRecord) == 4, "sizeof_SkO
TTableNameLangTagRecord_not_4"); |
582 static_assert(sizeof(SkOTTableName::Record) == 12, "sizeof_SkOTTableNameRecord_n
ot_12"); | 573 static_assert(sizeof(SkOTTableName::Record) == 12, "sizeof_SkOTTableNameRecord_n
ot_12"); |
583 | 574 |
584 #endif | 575 #endif |
OLD | NEW |