123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577 |
- /*
- * Copyright 2012 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef SkOTTable_name_DEFINED
- #define SkOTTable_name_DEFINED
- #include "include/core/SkString.h"
- #include "src/core/SkEndian.h"
- #include "src/sfnt/SkOTTableTypes.h"
- #pragma pack(push, 1)
- struct SkOTTableName {
- static const SK_OT_CHAR TAG0 = 'n';
- static const SK_OT_CHAR TAG1 = 'a';
- static const SK_OT_CHAR TAG2 = 'm';
- static const SK_OT_CHAR TAG3 = 'e';
- static const SK_OT_ULONG TAG = SkOTTableTAG<SkOTTableName>::value;
- SK_OT_USHORT format;
- static const SK_OT_USHORT format_0 = SkTEndian_SwapBE16(0);
- /** Format 1 was added in OpenType 1.6 (April 2009). */
- static const SK_OT_USHORT format_1 = SkTEndian_SwapBE16(1);
- /** The number of name records which follow. */
- SK_OT_USHORT count;
- /** Offset in SK_OT_BYTEs to start of string storage area (from start of table). */
- SK_OT_USHORT stringOffset;
- struct Record {
- /** The platform ID specifies how to interpret the encoding and language ID. */
- struct PlatformID {
- enum Value : SK_OT_USHORT {
- Unicode = SkTEndian_SwapBE16(0),
- Macintosh = SkTEndian_SwapBE16(1),
- ISO = SkTEndian_SwapBE16(2), // Deprecated, use Unicode instead.
- Windows = SkTEndian_SwapBE16(3),
- Custom = SkTEndian_SwapBE16(4),
- } value;
- } platformID;
- union EncodingID {
- SK_OT_USHORT custom;
- /** Always UTF-16BE. */
- struct Unicode {
- enum Value : SK_OT_USHORT {
- Unicode10 = SkTEndian_SwapBE16(0),
- Unicode11 = SkTEndian_SwapBE16(1),
- ISO10646 = SkTEndian_SwapBE16(2), //deprecated, use Unicode11
- Unicode20BMP = SkTEndian_SwapBE16(3),
- Unicode20 = SkTEndian_SwapBE16(4),
- UnicodeVariationSequences = SkTEndian_SwapBE16(5),
- UnicodeFull = SkTEndian_SwapBE16(6),
- } value;
- } unicode;
- /** These are Mac encodings, see http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/
- * for their mappings to unicode.
- * Name table strings using PlatformID::Macintosh must use Roman.
- */
- struct Macintosh {
- enum Value : SK_OT_USHORT {
- Roman = SkTEndian_SwapBE16(0),
- Japanese = SkTEndian_SwapBE16(1),
- ChineseTraditional = SkTEndian_SwapBE16(2),
- Korean = SkTEndian_SwapBE16(3),
- Arabic = SkTEndian_SwapBE16(4),
- Hebrew = SkTEndian_SwapBE16(5),
- Greek = SkTEndian_SwapBE16(6),
- Russian = SkTEndian_SwapBE16(7),
- RSymbol = SkTEndian_SwapBE16(8),
- Devanagari = SkTEndian_SwapBE16(9),
- Gurmukhi = SkTEndian_SwapBE16(10),
- Gujarati = SkTEndian_SwapBE16(11),
- Oriya = SkTEndian_SwapBE16(12),
- Bengali = SkTEndian_SwapBE16(13),
- Tamil = SkTEndian_SwapBE16(14),
- Telugu = SkTEndian_SwapBE16(15),
- Kannada = SkTEndian_SwapBE16(16),
- Malayalam = SkTEndian_SwapBE16(17),
- Sinhalese = SkTEndian_SwapBE16(18),
- Burmese = SkTEndian_SwapBE16(19),
- Khmer = SkTEndian_SwapBE16(20),
- Thai = SkTEndian_SwapBE16(21),
- Laotian = SkTEndian_SwapBE16(22),
- Georgian = SkTEndian_SwapBE16(23),
- Armenian = SkTEndian_SwapBE16(24),
- ChineseSimplified = SkTEndian_SwapBE16(25),
- Tibetan = SkTEndian_SwapBE16(26),
- Mongolian = SkTEndian_SwapBE16(27),
- Geez = SkTEndian_SwapBE16(28),
- Slavic = SkTEndian_SwapBE16(29),
- Vietnamese = SkTEndian_SwapBE16(30),
- Sindhi = SkTEndian_SwapBE16(31),
- Uninterpreted = SkTEndian_SwapBE16(32),
- } value;
- } macintosh;
- /** Deprecated, use Unicode instead. */
- struct ISO {
- enum Value : SK_OT_USHORT {
- ASCII7 = SkTEndian_SwapBE16(0),
- ISO10646 = SkTEndian_SwapBE16(1),
- ISO88591 = SkTEndian_SwapBE16(2),
- } value;
- } iso;
- /** Name table strings using PlatformID::Windows must use Symbol, UnicodeBMPUCS2, or
- * UnicodeUCS4. Symbol and UnicodeBMPUCS2 are both UCS2-BE, UnicodeUCS4 is actually
- * UTF-16BE.
- */
- struct Windows {
- enum Value : SK_OT_USHORT {
- Symbol = SkTEndian_SwapBE16(0), // UCS2-BE, but don't use this font to display it's own name.
- UnicodeBMPUCS2 = SkTEndian_SwapBE16(1), // UCS2-BE, Windows default
- ShiftJIS = SkTEndian_SwapBE16(2),
- PRC = SkTEndian_SwapBE16(3),
- Big5 = SkTEndian_SwapBE16(4),
- Wansung = SkTEndian_SwapBE16(5),
- Johab = SkTEndian_SwapBE16(6),
- UnicodeUCS4 = SkTEndian_SwapBE16(10), // UTF-16BE. It means UCS4 in charmaps.
- } value;
- } windows;
- } encodingID;
- /** LanguageIDs <= 0x7FFF are predefined.
- * LanguageIDs > 0x7FFF are indexes into the langTagRecord array
- * (in format 1 name tables, see SkOTTableName::format).
- */
- union LanguageID {
- /** A value greater than 0x7FFF.
- * languageTagID - 0x8000 is an index into the langTagRecord array.
- */
- SK_OT_USHORT languageTagID;
- /** These are known as Language Designators.
- * Apple now uses BCP 47 (post OSX10.4), so there will be no new entries.
- */
- struct Macintosh {
- enum Value : SK_OT_USHORT {
- English = SkTEndian_SwapBE16(0),
- French = SkTEndian_SwapBE16(1),
- German = SkTEndian_SwapBE16(2),
- Italian = SkTEndian_SwapBE16(3),
- Dutch = SkTEndian_SwapBE16(4),
- Swedish = SkTEndian_SwapBE16(5),
- Spanish = SkTEndian_SwapBE16(6),
- Danish = SkTEndian_SwapBE16(7),
- Portuguese = SkTEndian_SwapBE16(8),
- Norwegian = SkTEndian_SwapBE16(9),
- Hebrew = SkTEndian_SwapBE16(10),
- Japanese = SkTEndian_SwapBE16(11),
- Arabic = SkTEndian_SwapBE16(12),
- Finnish = SkTEndian_SwapBE16(13),
- Greek = SkTEndian_SwapBE16(14),
- Icelandic = SkTEndian_SwapBE16(15),
- Maltese = SkTEndian_SwapBE16(16),
- Turkish = SkTEndian_SwapBE16(17),
- Croatian = SkTEndian_SwapBE16(18),
- ChineseTraditional = SkTEndian_SwapBE16(19),
- Urdu = SkTEndian_SwapBE16(20),
- Hindi = SkTEndian_SwapBE16(21),
- Thai = SkTEndian_SwapBE16(22),
- Korean = SkTEndian_SwapBE16(23),
- Lithuanian = SkTEndian_SwapBE16(24),
- Polish = SkTEndian_SwapBE16(25),
- Hungarian = SkTEndian_SwapBE16(26),
- Estonian = SkTEndian_SwapBE16(27),
- Latvian = SkTEndian_SwapBE16(28),
- Sami = SkTEndian_SwapBE16(29),
- Faroese = SkTEndian_SwapBE16(30),
- Farsi_Persian = SkTEndian_SwapBE16(31),
- Russian = SkTEndian_SwapBE16(32),
- ChineseSimplified = SkTEndian_SwapBE16(33),
- Flemish = SkTEndian_SwapBE16(34),
- IrishGaelic = SkTEndian_SwapBE16(35),
- Albanian = SkTEndian_SwapBE16(36),
- Romanian = SkTEndian_SwapBE16(37),
- Czech = SkTEndian_SwapBE16(38),
- Slovak = SkTEndian_SwapBE16(39),
- Slovenian = SkTEndian_SwapBE16(40),
- Yiddish = SkTEndian_SwapBE16(41),
- Serbian = SkTEndian_SwapBE16(42),
- Macedonian = SkTEndian_SwapBE16(43),
- Bulgarian = SkTEndian_SwapBE16(44),
- Ukrainian = SkTEndian_SwapBE16(45),
- Byelorussian = SkTEndian_SwapBE16(46),
- Uzbek = SkTEndian_SwapBE16(47),
- Kazakh = SkTEndian_SwapBE16(48),
- AzerbaijaniCyrillic = SkTEndian_SwapBE16(49),
- AzerbaijaniArabic = SkTEndian_SwapBE16(50),
- Armenian = SkTEndian_SwapBE16(51),
- Georgian = SkTEndian_SwapBE16(52),
- Moldavian = SkTEndian_SwapBE16(53),
- Kirghiz = SkTEndian_SwapBE16(54),
- Tajiki = SkTEndian_SwapBE16(55),
- Turkmen = SkTEndian_SwapBE16(56),
- MongolianTraditional = SkTEndian_SwapBE16(57),
- MongolianCyrillic = SkTEndian_SwapBE16(58),
- Pashto = SkTEndian_SwapBE16(59),
- Kurdish = SkTEndian_SwapBE16(60),
- Kashmiri = SkTEndian_SwapBE16(61),
- Sindhi = SkTEndian_SwapBE16(62),
- Tibetan = SkTEndian_SwapBE16(63),
- Nepali = SkTEndian_SwapBE16(64),
- Sanskrit = SkTEndian_SwapBE16(65),
- Marathi = SkTEndian_SwapBE16(66),
- Bengali = SkTEndian_SwapBE16(67),
- Assamese = SkTEndian_SwapBE16(68),
- Gujarati = SkTEndian_SwapBE16(69),
- Punjabi = SkTEndian_SwapBE16(70),
- Oriya = SkTEndian_SwapBE16(71),
- Malayalam = SkTEndian_SwapBE16(72),
- Kannada = SkTEndian_SwapBE16(73),
- Tamil = SkTEndian_SwapBE16(74),
- Telugu = SkTEndian_SwapBE16(75),
- Sinhalese = SkTEndian_SwapBE16(76),
- Burmese = SkTEndian_SwapBE16(77),
- Khmer = SkTEndian_SwapBE16(78),
- Lao = SkTEndian_SwapBE16(79),
- Vietnamese = SkTEndian_SwapBE16(80),
- Indonesian = SkTEndian_SwapBE16(81),
- Tagalong = SkTEndian_SwapBE16(82),
- MalayRoman = SkTEndian_SwapBE16(83),
- MalayArabic = SkTEndian_SwapBE16(84),
- Amharic = SkTEndian_SwapBE16(85),
- Tigrinya = SkTEndian_SwapBE16(86),
- Galla = SkTEndian_SwapBE16(87),
- Somali = SkTEndian_SwapBE16(88),
- Swahili = SkTEndian_SwapBE16(89),
- Kinyarwanda_Ruanda = SkTEndian_SwapBE16(90),
- Rundi = SkTEndian_SwapBE16(91),
- Nyanja_Chewa = SkTEndian_SwapBE16(92),
- Malagasy = SkTEndian_SwapBE16(93),
- Esperanto = SkTEndian_SwapBE16(94),
- Welsh = SkTEndian_SwapBE16(128),
- Basque = SkTEndian_SwapBE16(129),
- Catalan = SkTEndian_SwapBE16(130),
- Latin = SkTEndian_SwapBE16(131),
- Quenchua = SkTEndian_SwapBE16(132),
- Guarani = SkTEndian_SwapBE16(133),
- Aymara = SkTEndian_SwapBE16(134),
- Tatar = SkTEndian_SwapBE16(135),
- Uighur = SkTEndian_SwapBE16(136),
- Dzongkha = SkTEndian_SwapBE16(137),
- JavaneseRoman = SkTEndian_SwapBE16(138),
- SundaneseRoman = SkTEndian_SwapBE16(139),
- Galician = SkTEndian_SwapBE16(140),
- Afrikaans = SkTEndian_SwapBE16(141),
- Breton = SkTEndian_SwapBE16(142),
- Inuktitut = SkTEndian_SwapBE16(143),
- ScottishGaelic = SkTEndian_SwapBE16(144),
- ManxGaelic = SkTEndian_SwapBE16(145),
- IrishGaelicWithLenition = SkTEndian_SwapBE16(146),
- Tongan = SkTEndian_SwapBE16(147),
- GreekPolytonic = SkTEndian_SwapBE16(148),
- Greenlandic = SkTEndian_SwapBE16(149),
- AzerbaijaniRoman = SkTEndian_SwapBE16(150),
- } value;
- } macintosh;
- /** These are known as LCIDs.
- * On Windows the current set can be had from EnumSystemLocalesEx and LocaleNameToLCID.
- */
- struct Windows {
- enum Value : SK_OT_USHORT {
- Afrikaans_SouthAfrica = SkTEndian_SwapBE16(0x0436),
- Albanian_Albania = SkTEndian_SwapBE16(0x041C),
- Alsatian_France = SkTEndian_SwapBE16(0x0484),
- Amharic_Ethiopia = SkTEndian_SwapBE16(0x045E),
- Arabic_Algeria = SkTEndian_SwapBE16(0x1401),
- Arabic_Bahrain = SkTEndian_SwapBE16(0x3C01),
- Arabic_Egypt = SkTEndian_SwapBE16(0x0C01),
- Arabic_Iraq = SkTEndian_SwapBE16(0x0801),
- Arabic_Jordan = SkTEndian_SwapBE16(0x2C01),
- Arabic_Kuwait = SkTEndian_SwapBE16(0x3401),
- Arabic_Lebanon = SkTEndian_SwapBE16(0x3001),
- Arabic_Libya = SkTEndian_SwapBE16(0x1001),
- Arabic_Morocco = SkTEndian_SwapBE16(0x1801),
- Arabic_Oman = SkTEndian_SwapBE16(0x2001),
- Arabic_Qatar = SkTEndian_SwapBE16(0x4001),
- Arabic_SaudiArabia = SkTEndian_SwapBE16(0x0401),
- Arabic_Syria = SkTEndian_SwapBE16(0x2801),
- Arabic_Tunisia = SkTEndian_SwapBE16(0x1C01),
- Arabic_UAE = SkTEndian_SwapBE16(0x3801),
- Arabic_Yemen = SkTEndian_SwapBE16(0x2401),
- Armenian_Armenia = SkTEndian_SwapBE16(0x042B),
- Assamese_India = SkTEndian_SwapBE16(0x044D),
- AzeriCyrillic_Azerbaijan = SkTEndian_SwapBE16(0x082C),
- AzeriLatin_Azerbaijan = SkTEndian_SwapBE16(0x042C),
- Bashkir_Russia = SkTEndian_SwapBE16(0x046D),
- Basque_Basque = SkTEndian_SwapBE16(0x042D),
- Belarusian_Belarus = SkTEndian_SwapBE16(0x0423),
- Bengali_Bangladesh = SkTEndian_SwapBE16(0x0845),
- Bengali_India = SkTEndian_SwapBE16(0x0445),
- BosnianCyrillic_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x201A),
- BosnianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x141A),
- Breton_France = SkTEndian_SwapBE16(0x047E),
- Bulgarian_Bulgaria = SkTEndian_SwapBE16(0x0402),
- Catalan_Catalan = SkTEndian_SwapBE16(0x0403),
- Chinese_HongKongSAR = SkTEndian_SwapBE16(0x0C04),
- Chinese_MacaoSAR = SkTEndian_SwapBE16(0x1404),
- Chinese_PeoplesRepublicOfChina = SkTEndian_SwapBE16(0x0804),
- Chinese_Singapore = SkTEndian_SwapBE16(0x1004),
- Chinese_Taiwan = SkTEndian_SwapBE16(0x0404),
- Corsican_France = SkTEndian_SwapBE16(0x0483),
- Croatian_Croatia = SkTEndian_SwapBE16(0x041A),
- CroatianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x101A),
- Czech_CzechRepublic = SkTEndian_SwapBE16(0x0405),
- Danish_Denmark = SkTEndian_SwapBE16(0x0406),
- Dari_Afghanistan = SkTEndian_SwapBE16(0x048C),
- Divehi_Maldives = SkTEndian_SwapBE16(0x0465),
- Dutch_Belgium = SkTEndian_SwapBE16(0x0813),
- Dutch_Netherlands = SkTEndian_SwapBE16(0x0413),
- English_Australia = SkTEndian_SwapBE16(0x0C09),
- English_Belize = SkTEndian_SwapBE16(0x2809),
- English_Canada = SkTEndian_SwapBE16(0x1009),
- English_Caribbean = SkTEndian_SwapBE16(0x2409),
- English_India = SkTEndian_SwapBE16(0x4009),
- English_Ireland = SkTEndian_SwapBE16(0x1809),
- English_Jamaica = SkTEndian_SwapBE16(0x2009),
- English_Malaysia = SkTEndian_SwapBE16(0x4409),
- English_NewZealand = SkTEndian_SwapBE16(0x1409),
- English_RepublicOfThePhilippines = SkTEndian_SwapBE16(0x3409),
- English_Singapore = SkTEndian_SwapBE16(0x4809),
- English_SouthAfrica = SkTEndian_SwapBE16(0x1C09),
- English_TrinidadAndTobago = SkTEndian_SwapBE16(0x2C09),
- English_UnitedKingdom = SkTEndian_SwapBE16(0x0809),
- English_UnitedStates = SkTEndian_SwapBE16(0x0409),
- English_Zimbabwe = SkTEndian_SwapBE16(0x3009),
- Estonian_Estonia = SkTEndian_SwapBE16(0x0425),
- Faroese_FaroeIslands = SkTEndian_SwapBE16(0x0438),
- Filipino_Philippines = SkTEndian_SwapBE16(0x0464),
- Finnish_Finland = SkTEndian_SwapBE16(0x040B),
- French_Belgium = SkTEndian_SwapBE16(0x080C),
- French_Canada = SkTEndian_SwapBE16(0x0C0C),
- French_France = SkTEndian_SwapBE16(0x040C),
- French_Luxembourg = SkTEndian_SwapBE16(0x140c),
- French_PrincipalityOfMonoco = SkTEndian_SwapBE16(0x180C),
- French_Switzerland = SkTEndian_SwapBE16(0x100C),
- Frisian_Netherlands = SkTEndian_SwapBE16(0x0462),
- Galician_Galician = SkTEndian_SwapBE16(0x0456),
- Georgian_Georgia = SkTEndian_SwapBE16(0x0437),
- German_Austria = SkTEndian_SwapBE16(0x0C07),
- German_Germany = SkTEndian_SwapBE16(0x0407),
- German_Liechtenstein = SkTEndian_SwapBE16(0x1407),
- German_Luxembourg = SkTEndian_SwapBE16(0x1007),
- German_Switzerland = SkTEndian_SwapBE16(0x0807),
- Greek_Greece = SkTEndian_SwapBE16(0x0408),
- Greenlandic_Greenland = SkTEndian_SwapBE16(0x046F),
- Gujarati_India = SkTEndian_SwapBE16(0x0447),
- HausaLatin_Nigeria = SkTEndian_SwapBE16(0x0468),
- Hebrew_Israel = SkTEndian_SwapBE16(0x040D),
- Hindi_India = SkTEndian_SwapBE16(0x0439),
- Hungarian_Hungary = SkTEndian_SwapBE16(0x040E),
- Icelandic_Iceland = SkTEndian_SwapBE16(0x040F),
- Igbo_Nigeria = SkTEndian_SwapBE16(0x0470),
- Indonesian_Indonesia = SkTEndian_SwapBE16(0x0421),
- Inuktitut_Canada = SkTEndian_SwapBE16(0x045D),
- InuktitutLatin_Canada = SkTEndian_SwapBE16(0x085D),
- Irish_Ireland = SkTEndian_SwapBE16(0x083C),
- isiXhosa_SouthAfrica = SkTEndian_SwapBE16(0x0434),
- isiZulu_SouthAfrica = SkTEndian_SwapBE16(0x0435),
- Italian_Italy = SkTEndian_SwapBE16(0x0410),
- Italian_Switzerland = SkTEndian_SwapBE16(0x0810),
- Japanese_Japan = SkTEndian_SwapBE16(0x0411),
- Kannada_India = SkTEndian_SwapBE16(0x044B),
- Kazakh_Kazakhstan = SkTEndian_SwapBE16(0x043F),
- Khmer_Cambodia = SkTEndian_SwapBE16(0x0453),
- Kiche_Guatemala = SkTEndian_SwapBE16(0x0486),
- Kinyarwanda_Rwanda = SkTEndian_SwapBE16(0x0487),
- Kiswahili_Kenya = SkTEndian_SwapBE16(0x0441),
- Konkani_India = SkTEndian_SwapBE16(0x0457),
- Korean_Korea = SkTEndian_SwapBE16(0x0412),
- Kyrgyz_Kyrgyzstan = SkTEndian_SwapBE16(0x0440),
- Lao_LaoPDR = SkTEndian_SwapBE16(0x0454),
- Latvian_Latvia = SkTEndian_SwapBE16(0x0426),
- Lithuanian_Lithuania = SkTEndian_SwapBE16(0x0427),
- LowerSorbian_Germany = SkTEndian_SwapBE16(0x082E),
- Luxembourgish_Luxembourg = SkTEndian_SwapBE16(0x046E),
- MacedonianFYROM_FormerYugoslavRepublicOfMacedonia = SkTEndian_SwapBE16(0x042F),
- Malay_BruneiDarussalam = SkTEndian_SwapBE16(0x083E),
- Malay_Malaysia = SkTEndian_SwapBE16(0x043E),
- Malayalam_India = SkTEndian_SwapBE16(0x044C),
- Maltese_Malta = SkTEndian_SwapBE16(0x043A),
- Maori_NewZealand = SkTEndian_SwapBE16(0x0481),
- Mapudungun_Chile = SkTEndian_SwapBE16(0x047A),
- Marathi_India = SkTEndian_SwapBE16(0x044E),
- Mohawk_Mohawk = SkTEndian_SwapBE16(0x047C),
- MongolianCyrillic_Mongolia = SkTEndian_SwapBE16(0x0450),
- MongolianTraditional_PeoplesRepublicOfChina = SkTEndian_SwapBE16(0x0850),
- Nepali_Nepal = SkTEndian_SwapBE16(0x0461),
- NorwegianBokmal_Norway = SkTEndian_SwapBE16(0x0414),
- NorwegianNynorsk_Norway = SkTEndian_SwapBE16(0x0814),
- Occitan_France = SkTEndian_SwapBE16(0x0482),
- Odia_India = SkTEndian_SwapBE16(0x0448),
- Pashto_Afghanistan = SkTEndian_SwapBE16(0x0463),
- Polish_Poland = SkTEndian_SwapBE16(0x0415),
- Portuguese_Brazil = SkTEndian_SwapBE16(0x0416),
- Portuguese_Portugal = SkTEndian_SwapBE16(0x0816),
- Punjabi_India = SkTEndian_SwapBE16(0x0446),
- Quechua_Bolivia = SkTEndian_SwapBE16(0x046B),
- Quechua_Ecuador = SkTEndian_SwapBE16(0x086B),
- Quechua_Peru = SkTEndian_SwapBE16(0x0C6B),
- Romanian_Romania = SkTEndian_SwapBE16(0x0418),
- Romansh_Switzerland = SkTEndian_SwapBE16(0x0417),
- Russian_Russia = SkTEndian_SwapBE16(0x0419),
- SamiInari_Finland = SkTEndian_SwapBE16(0x243B),
- SamiLule_Norway = SkTEndian_SwapBE16(0x103B),
- SamiLule_Sweden = SkTEndian_SwapBE16(0x143B),
- SamiNorthern_Finland = SkTEndian_SwapBE16(0x0C3B),
- SamiNorthern_Norway = SkTEndian_SwapBE16(0x043B),
- SamiNorthern_Sweden = SkTEndian_SwapBE16(0x083B),
- SamiSkolt_Finland = SkTEndian_SwapBE16(0x203B),
- SamiSouthern_Norway = SkTEndian_SwapBE16(0x183B),
- SamiSouthern_Sweden = SkTEndian_SwapBE16(0x1C3B),
- Sanskrit_India = SkTEndian_SwapBE16(0x044F),
- SerbianCyrillic_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x1C1A),
- SerbianCyrillic_Serbia = SkTEndian_SwapBE16(0x0C1A),
- SerbianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x181A),
- SerbianLatin_Serbia = SkTEndian_SwapBE16(0x081A),
- SesothoSaLeboa_SouthAfrica = SkTEndian_SwapBE16(0x046C),
- Setswana_SouthAfrica = SkTEndian_SwapBE16(0x0432),
- Sinhala_SriLanka = SkTEndian_SwapBE16(0x045B),
- Slovak_Slovakia = SkTEndian_SwapBE16(0x041B),
- Slovenian_Slovenia = SkTEndian_SwapBE16(0x0424),
- Spanish_Argentina = SkTEndian_SwapBE16(0x2C0A),
- Spanish_Bolivia = SkTEndian_SwapBE16(0x400A),
- Spanish_Chile = SkTEndian_SwapBE16(0x340A),
- Spanish_Colombia = SkTEndian_SwapBE16(0x240A),
- Spanish_CostaRica = SkTEndian_SwapBE16(0x140A),
- Spanish_DominicanRepublic = SkTEndian_SwapBE16(0x1C0A),
- Spanish_Ecuador = SkTEndian_SwapBE16(0x300A),
- Spanish_ElSalvador = SkTEndian_SwapBE16(0x440A),
- Spanish_Guatemala = SkTEndian_SwapBE16(0x100A),
- Spanish_Honduras = SkTEndian_SwapBE16(0x480A),
- Spanish_Mexico = SkTEndian_SwapBE16(0x080A),
- Spanish_Nicaragua = SkTEndian_SwapBE16(0x4C0A),
- Spanish_Panama = SkTEndian_SwapBE16(0x180A),
- Spanish_Paraguay = SkTEndian_SwapBE16(0x3C0A),
- Spanish_Peru = SkTEndian_SwapBE16(0x280A),
- Spanish_PuertoRico = SkTEndian_SwapBE16(0x500A),
- SpanishModernSort_Spain = SkTEndian_SwapBE16(0x0C0A),
- SpanishTraditionalSort_Spain = SkTEndian_SwapBE16(0x040A),
- Spanish_UnitedStates = SkTEndian_SwapBE16(0x540A),
- Spanish_Uruguay = SkTEndian_SwapBE16(0x380A),
- Spanish_Venezuela = SkTEndian_SwapBE16(0x200A),
- Sweden_Finland = SkTEndian_SwapBE16(0x081D),
- Swedish_Sweden = SkTEndian_SwapBE16(0x041D),
- Syriac_Syria = SkTEndian_SwapBE16(0x045A),
- TajikCyrillic_Tajikistan = SkTEndian_SwapBE16(0x0428),
- TamazightLatin_Algeria = SkTEndian_SwapBE16(0x085F),
- Tamil_India = SkTEndian_SwapBE16(0x0449),
- Tatar_Russia = SkTEndian_SwapBE16(0x0444),
- Telugu_India = SkTEndian_SwapBE16(0x044A),
- Thai_Thailand = SkTEndian_SwapBE16(0x041E),
- Tibetan_PRC = SkTEndian_SwapBE16(0x0451),
- Turkish_Turkey = SkTEndian_SwapBE16(0x041F),
- Turkmen_Turkmenistan = SkTEndian_SwapBE16(0x0442),
- Uighur_PRC = SkTEndian_SwapBE16(0x0480),
- Ukrainian_Ukraine = SkTEndian_SwapBE16(0x0422),
- UpperSorbian_Germany = SkTEndian_SwapBE16(0x042E),
- Urdu_IslamicRepublicOfPakistan = SkTEndian_SwapBE16(0x0420),
- UzbekCyrillic_Uzbekistan = SkTEndian_SwapBE16(0x0843),
- UzbekLatin_Uzbekistan = SkTEndian_SwapBE16(0x0443),
- Vietnamese_Vietnam = SkTEndian_SwapBE16(0x042A),
- Welsh_UnitedKingdom = SkTEndian_SwapBE16(0x0452),
- Wolof_Senegal = SkTEndian_SwapBE16(0x0488),
- Yakut_Russia = SkTEndian_SwapBE16(0x0485),
- Yi_PRC = SkTEndian_SwapBE16(0x0478),
- Yoruba_Nigeria = SkTEndian_SwapBE16(0x046A),
- } value;
- } windows;
- } languageID;
- /** NameIDs <= 0xFF are predefined. Those > 0xFF are font specific. */
- union NameID {
- /** A font specific name id which should be greater than 0xFF. */
- SK_OT_USHORT fontSpecific;
- struct Predefined {
- enum Value : SK_OT_USHORT {
- CopyrightNotice = SkTEndian_SwapBE16(0),
- FontFamilyName = SkTEndian_SwapBE16(1),
- FontSubfamilyName = SkTEndian_SwapBE16(2),
- UniqueFontIdentifier = SkTEndian_SwapBE16(3),
- FullFontName = SkTEndian_SwapBE16(4),
- VersionString = SkTEndian_SwapBE16(5), //Version <number>.<number>
- PostscriptName = SkTEndian_SwapBE16(6), //See spec for constraints.
- Trademark = SkTEndian_SwapBE16(7),
- ManufacturerName = SkTEndian_SwapBE16(8),
- Designer = SkTEndian_SwapBE16(9),
- Description = SkTEndian_SwapBE16(10),
- URLVendor = SkTEndian_SwapBE16(11),
- URLDesigner = SkTEndian_SwapBE16(12),
- LicenseDescription = SkTEndian_SwapBE16(13),
- LicenseInfoURL = SkTEndian_SwapBE16(14),
- PreferredFamily = SkTEndian_SwapBE16(16),
- PreferredSubfamily = SkTEndian_SwapBE16(17),
- CompatibleFullName = SkTEndian_SwapBE16(18),
- SampleText = SkTEndian_SwapBE16(19),
- PostscriptCIDFindfontName = SkTEndian_SwapBE16(20),
- WWSFamilyName = SkTEndian_SwapBE16(21),
- WWSSubfamilyName = SkTEndian_SwapBE16(22),
- } value;
- } predefined;
- } nameID;
- /** The length of the string in SK_OT_BYTEs. */
- SK_OT_USHORT length;
- /** Offset in SK_OT_BYTEs from start of string storage area
- * (see SkOTTableName::stringOffset).
- */
- SK_OT_USHORT offset;
- }; //nameRecord[count];
- struct Format1Ext {
- /** The number of languageTagRecords which follow. */
- SK_OT_USHORT langTagCount;
- /** The encoding of a langTagRecord string is always UTF-16BE.
- * The content should follow IETF specification BCP 47.
- */
- struct LangTagRecord {
- /** The length of the string in SK_OT_BYTEs. */
- SK_OT_USHORT length;
- /** Offset in SK_OT_BYTEs from start of string storage area
- * (see SkOTTableName::stringOffset).
- */
- SK_OT_USHORT offset;
- }; //langTagRecord[langTagCount]
- }; //format1ext (if format == format_1)
- class Iterator {
- public:
- Iterator(const uint8_t* nameTable, size_t size)
- : fNameTable(nameTable), fNameTableSize(size), fIndex(0), fType(-1) { }
- Iterator(const uint8_t* nameTable, size_t size, SK_OT_USHORT type)
- : fNameTable(nameTable), fNameTableSize(size), fIndex(0), fType(type)
- { }
- void reset(SK_OT_USHORT type) {
- fIndex = 0;
- fType = type;
- }
- struct Record {
- SkString name;
- SkString language;
- SK_OT_USHORT type;
- };
- bool next(Record&);
- private:
- const uint8_t* fNameTable;
- const size_t fNameTableSize;
- size_t fIndex;
- int fType;
- };
- };
- #pragma pack(pop)
- static_assert(sizeof(SkOTTableName) == 6, "sizeof_SkOTTableName_not_6");
- static_assert(sizeof(SkOTTableName::Format1Ext) == 2, "sizeof_SkOTTableNameF1_not_2");
- static_assert(sizeof(SkOTTableName::Format1Ext::LangTagRecord) == 4, "sizeof_SkOTTableNameLangTagRecord_not_4");
- static_assert(sizeof(SkOTTableName::Record) == 12, "sizeof_SkOTTableNameRecord_not_12");
- #endif
|