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