18ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com/* 28ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com * Copyright 2012 Google Inc. 38ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com * 48ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com * Use of this source code is governed by a BSD-style license that can be 58ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com * found in the LICENSE file. 68ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com */ 78ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com 88ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com#ifndef SkOTTable_name_DEFINED 98ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com#define SkOTTable_name_DEFINED 108ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com 118ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com#include "SkEndian.h" 128ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com#include "SkOTTableTypes.h" 1307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com#include "SkString.h" 148ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com 158ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com#pragma pack(push, 1) 168ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com 178ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.comstruct SkOTTableName { 18ec95a4ae45e9bff1a92627372fd771b389813fecbungeman@google.com static const SK_OT_CHAR TAG0 = 'n'; 19ec95a4ae45e9bff1a92627372fd771b389813fecbungeman@google.com static const SK_OT_CHAR TAG1 = 'a'; 20ec95a4ae45e9bff1a92627372fd771b389813fecbungeman@google.com static const SK_OT_CHAR TAG2 = 'm'; 21ec95a4ae45e9bff1a92627372fd771b389813fecbungeman@google.com static const SK_OT_CHAR TAG3 = 'e'; 22ec95a4ae45e9bff1a92627372fd771b389813fecbungeman@google.com static const SK_OT_ULONG TAG = SkOTTableTAG<SkOTTableName>::value; 23ec95a4ae45e9bff1a92627372fd771b389813fecbungeman@google.com 248ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com SK_OT_USHORT format; 258ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com static const SK_OT_USHORT format_0 = SkTEndian_SwapBE16(0); 2607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** Format 1 was added in OpenType 1.6 (April 2009). */ 278ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com static const SK_OT_USHORT format_1 = SkTEndian_SwapBE16(1); 2807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 2907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** The number of name records which follow. */ 308ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com SK_OT_USHORT count; 318ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com 3207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** Offset in SK_OT_BYTEs to start of string storage area (from start of table). */ 3307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SK_OT_USHORT stringOffset; 348ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com 3507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct Record { 3607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** The platform ID specifies how to interpret the encoding and language ID. */ 3707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct PlatformID { 388fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman enum Value : SK_OT_USHORT { 398fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Unicode = SkTEndian_SwapBE16(0), 408fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Macintosh = SkTEndian_SwapBE16(1), 418fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ISO = SkTEndian_SwapBE16(2), // Deprecated, use Unicode instead. 428fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Windows = SkTEndian_SwapBE16(3), 438fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Custom = SkTEndian_SwapBE16(4), 448fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman } value; 4507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } platformID; 4607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 4707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com union EncodingID { 4807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SK_OT_USHORT custom; 4907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 5007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** Always UTF-16BE. */ 5107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct Unicode { 528fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman enum Value : SK_OT_USHORT { 538fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Unicode10 = SkTEndian_SwapBE16(0), 548fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Unicode11 = SkTEndian_SwapBE16(1), 558fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ISO10646 = SkTEndian_SwapBE16(2), //deprecated, use Unicode11 568fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Unicode20BMP = SkTEndian_SwapBE16(3), 578fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Unicode20 = SkTEndian_SwapBE16(4), 588fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman UnicodeVariationSequences = SkTEndian_SwapBE16(5), 598fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman UnicodeFull = SkTEndian_SwapBE16(6), 608fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman } value; 6107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } unicode; 6207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 6307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** These are Mac encodings, see http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ 6407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * for their mappings to unicode. 6507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * Name table strings using PlatformID::Macintosh must use Roman. 6607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com */ 6707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct Macintosh { 688fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman enum Value : SK_OT_USHORT { 698fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Roman = SkTEndian_SwapBE16(0), 708fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Japanese = SkTEndian_SwapBE16(1), 718fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ChineseTraditional = SkTEndian_SwapBE16(2), 728fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Korean = SkTEndian_SwapBE16(3), 738fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic = SkTEndian_SwapBE16(4), 748fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Hebrew = SkTEndian_SwapBE16(5), 758fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Greek = SkTEndian_SwapBE16(6), 768fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Russian = SkTEndian_SwapBE16(7), 778fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman RSymbol = SkTEndian_SwapBE16(8), 788fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Devanagari = SkTEndian_SwapBE16(9), 798fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Gurmukhi = SkTEndian_SwapBE16(10), 808fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Gujarati = SkTEndian_SwapBE16(11), 818fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Oriya = SkTEndian_SwapBE16(12), 828fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Bengali = SkTEndian_SwapBE16(13), 838fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tamil = SkTEndian_SwapBE16(14), 848fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Telugu = SkTEndian_SwapBE16(15), 858fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kannada = SkTEndian_SwapBE16(16), 868fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Malayalam = SkTEndian_SwapBE16(17), 878fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Sinhalese = SkTEndian_SwapBE16(18), 888fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Burmese = SkTEndian_SwapBE16(19), 898fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Khmer = SkTEndian_SwapBE16(20), 908fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Thai = SkTEndian_SwapBE16(21), 918fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Laotian = SkTEndian_SwapBE16(22), 928fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Georgian = SkTEndian_SwapBE16(23), 938fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Armenian = SkTEndian_SwapBE16(24), 948fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ChineseSimplified = SkTEndian_SwapBE16(25), 958fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tibetan = SkTEndian_SwapBE16(26), 968fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Mongolian = SkTEndian_SwapBE16(27), 978fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Geez = SkTEndian_SwapBE16(28), 988fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Slavic = SkTEndian_SwapBE16(29), 998fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Vietnamese = SkTEndian_SwapBE16(30), 1008fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Sindhi = SkTEndian_SwapBE16(31), 1018fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Uninterpreted = SkTEndian_SwapBE16(32), 1028fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman } value; 10307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } macintosh; 10407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 10507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** Deprecated, use Unicode instead. */ 10607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct ISO { 1078fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman enum Value : SK_OT_USHORT { 1088fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ASCII7 = SkTEndian_SwapBE16(0), 1098fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ISO10646 = SkTEndian_SwapBE16(1), 1108fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ISO88591 = SkTEndian_SwapBE16(2), 1118fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman } value; 11207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } iso; 11307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 11407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** Name table strings using PlatformID::Windows must use Symbol, UnicodeBMPUCS2, or 11507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * UnicodeUCS4. Symbol and UnicodeBMPUCS2 are both UCS2-BE, UnicodeUCS4 is actually 11607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * UTF-16BE. 11707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com */ 11807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct Windows { 1198fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman enum Value : SK_OT_USHORT { 1208fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Symbol = SkTEndian_SwapBE16(0), // UCS2-BE, but don't use this font to display it's own name. 1218fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman UnicodeBMPUCS2 = SkTEndian_SwapBE16(1), // UCS2-BE, Windows default 1228fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ShiftJIS = SkTEndian_SwapBE16(2), 1238fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman PRC = SkTEndian_SwapBE16(3), 1248fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Big5 = SkTEndian_SwapBE16(4), 1258fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Wansung = SkTEndian_SwapBE16(5), 1268fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Johab = SkTEndian_SwapBE16(6), 1278fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman UnicodeUCS4 = SkTEndian_SwapBE16(10), // UTF-16BE. It means UCS4 in charmaps. 1288fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman } value; 12907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } windows; 13007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } encodingID; 13107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 13207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** LanguageIDs <= 0x7FFF are predefined. 13307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * LanguageIDs > 0x7FFF are indexes into the langTagRecord array 13407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * (in format 1 name tables, see SkOTTableName::format). 13507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com */ 13607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com union LanguageID { 13707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** A value greater than 0x7FFF. 13807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * languageTagID - 0x8000 is an index into the langTagRecord array. 13907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com */ 14007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SK_OT_USHORT languageTagID; 14107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 14207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** These are known as Language Designators. 14307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * Apple now uses BCP 47 (post OSX10.4), so there will be no new entries. 14407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com */ 14507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct Macintosh { 1468fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman enum Value : SK_OT_USHORT { 1478fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English = SkTEndian_SwapBE16(0), 1488fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman French = SkTEndian_SwapBE16(1), 1498fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman German = SkTEndian_SwapBE16(2), 1508fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Italian = SkTEndian_SwapBE16(3), 1518fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Dutch = SkTEndian_SwapBE16(4), 1528fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Swedish = SkTEndian_SwapBE16(5), 1538fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish = SkTEndian_SwapBE16(6), 1548fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Danish = SkTEndian_SwapBE16(7), 1558fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Portuguese = SkTEndian_SwapBE16(8), 1568fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Norwegian = SkTEndian_SwapBE16(9), 1578fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Hebrew = SkTEndian_SwapBE16(10), 1588fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Japanese = SkTEndian_SwapBE16(11), 1598fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic = SkTEndian_SwapBE16(12), 1608fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Finnish = SkTEndian_SwapBE16(13), 1618fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Greek = SkTEndian_SwapBE16(14), 1628fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Icelandic = SkTEndian_SwapBE16(15), 1638fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Maltese = SkTEndian_SwapBE16(16), 1648fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Turkish = SkTEndian_SwapBE16(17), 1658fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Croatian = SkTEndian_SwapBE16(18), 1668fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ChineseTraditional = SkTEndian_SwapBE16(19), 1678fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Urdu = SkTEndian_SwapBE16(20), 1688fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Hindi = SkTEndian_SwapBE16(21), 1698fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Thai = SkTEndian_SwapBE16(22), 1708fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Korean = SkTEndian_SwapBE16(23), 1718fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Lithuanian = SkTEndian_SwapBE16(24), 1728fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Polish = SkTEndian_SwapBE16(25), 1738fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Hungarian = SkTEndian_SwapBE16(26), 1748fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Estonian = SkTEndian_SwapBE16(27), 1758fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Latvian = SkTEndian_SwapBE16(28), 1768fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Sami = SkTEndian_SwapBE16(29), 1778fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Faroese = SkTEndian_SwapBE16(30), 1788fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Farsi_Persian = SkTEndian_SwapBE16(31), 1798fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Russian = SkTEndian_SwapBE16(32), 1808fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ChineseSimplified = SkTEndian_SwapBE16(33), 1818fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Flemish = SkTEndian_SwapBE16(34), 1828fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman IrishGaelic = SkTEndian_SwapBE16(35), 1838fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Albanian = SkTEndian_SwapBE16(36), 1848fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Romanian = SkTEndian_SwapBE16(37), 1858fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Czech = SkTEndian_SwapBE16(38), 1868fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Slovak = SkTEndian_SwapBE16(39), 1878fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Slovenian = SkTEndian_SwapBE16(40), 1888fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Yiddish = SkTEndian_SwapBE16(41), 1898fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Serbian = SkTEndian_SwapBE16(42), 1908fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Macedonian = SkTEndian_SwapBE16(43), 1918fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Bulgarian = SkTEndian_SwapBE16(44), 1928fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Ukrainian = SkTEndian_SwapBE16(45), 1938fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Byelorussian = SkTEndian_SwapBE16(46), 1948fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Uzbek = SkTEndian_SwapBE16(47), 1958fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kazakh = SkTEndian_SwapBE16(48), 1968fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman AzerbaijaniCyrillic = SkTEndian_SwapBE16(49), 1978fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman AzerbaijaniArabic = SkTEndian_SwapBE16(50), 1988fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Armenian = SkTEndian_SwapBE16(51), 1998fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Georgian = SkTEndian_SwapBE16(52), 2008fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Moldavian = SkTEndian_SwapBE16(53), 2018fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kirghiz = SkTEndian_SwapBE16(54), 2028fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tajiki = SkTEndian_SwapBE16(55), 2038fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Turkmen = SkTEndian_SwapBE16(56), 2048fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman MongolianTraditional = SkTEndian_SwapBE16(57), 2058fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman MongolianCyrillic = SkTEndian_SwapBE16(58), 2068fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Pashto = SkTEndian_SwapBE16(59), 2078fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kurdish = SkTEndian_SwapBE16(60), 2088fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kashmiri = SkTEndian_SwapBE16(61), 2098fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Sindhi = SkTEndian_SwapBE16(62), 2108fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tibetan = SkTEndian_SwapBE16(63), 2118fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Nepali = SkTEndian_SwapBE16(64), 2128fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Sanskrit = SkTEndian_SwapBE16(65), 2138fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Marathi = SkTEndian_SwapBE16(66), 2148fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Bengali = SkTEndian_SwapBE16(67), 2158fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Assamese = SkTEndian_SwapBE16(68), 2168fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Gujarati = SkTEndian_SwapBE16(69), 2178fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Punjabi = SkTEndian_SwapBE16(70), 2188fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Oriya = SkTEndian_SwapBE16(71), 2198fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Malayalam = SkTEndian_SwapBE16(72), 2208fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kannada = SkTEndian_SwapBE16(73), 2218fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tamil = SkTEndian_SwapBE16(74), 2228fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Telugu = SkTEndian_SwapBE16(75), 2238fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Sinhalese = SkTEndian_SwapBE16(76), 2248fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Burmese = SkTEndian_SwapBE16(77), 2258fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Khmer = SkTEndian_SwapBE16(78), 2268fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Lao = SkTEndian_SwapBE16(79), 2278fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Vietnamese = SkTEndian_SwapBE16(80), 2288fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Indonesian = SkTEndian_SwapBE16(81), 2298fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tagalong = SkTEndian_SwapBE16(82), 2308fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman MalayRoman = SkTEndian_SwapBE16(83), 2318fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman MalayArabic = SkTEndian_SwapBE16(84), 2328fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Amharic = SkTEndian_SwapBE16(85), 2338fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tigrinya = SkTEndian_SwapBE16(86), 2348fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Galla = SkTEndian_SwapBE16(87), 2358fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Somali = SkTEndian_SwapBE16(88), 2368fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Swahili = SkTEndian_SwapBE16(89), 2378fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kinyarwanda_Ruanda = SkTEndian_SwapBE16(90), 2388fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Rundi = SkTEndian_SwapBE16(91), 2398fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Nyanja_Chewa = SkTEndian_SwapBE16(92), 2408fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Malagasy = SkTEndian_SwapBE16(93), 2418fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Esperanto = SkTEndian_SwapBE16(94), 2428fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Welsh = SkTEndian_SwapBE16(128), 2438fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Basque = SkTEndian_SwapBE16(129), 2448fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Catalan = SkTEndian_SwapBE16(130), 2458fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Latin = SkTEndian_SwapBE16(131), 2468fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Quenchua = SkTEndian_SwapBE16(132), 2478fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Guarani = SkTEndian_SwapBE16(133), 2488fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Aymara = SkTEndian_SwapBE16(134), 2498fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tatar = SkTEndian_SwapBE16(135), 2508fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Uighur = SkTEndian_SwapBE16(136), 2518fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Dzongkha = SkTEndian_SwapBE16(137), 2528fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman JavaneseRoman = SkTEndian_SwapBE16(138), 2538fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SundaneseRoman = SkTEndian_SwapBE16(139), 2548fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Galician = SkTEndian_SwapBE16(140), 2558fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Afrikaans = SkTEndian_SwapBE16(141), 2568fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Breton = SkTEndian_SwapBE16(142), 2578fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Inuktitut = SkTEndian_SwapBE16(143), 2588fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ScottishGaelic = SkTEndian_SwapBE16(144), 2598fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ManxGaelic = SkTEndian_SwapBE16(145), 2608fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman IrishGaelicWithLenition = SkTEndian_SwapBE16(146), 2618fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tongan = SkTEndian_SwapBE16(147), 2628fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman GreekPolytonic = SkTEndian_SwapBE16(148), 2638fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Greenlandic = SkTEndian_SwapBE16(149), 2648fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman AzerbaijaniRoman = SkTEndian_SwapBE16(150), 2658fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman } value; 26607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } macintosh; 26707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 26807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** These are known as LCIDs. 26907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * On Windows the current set can be had from EnumSystemLocalesEx and LocaleNameToLCID. 27007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com */ 27107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct Windows { 2728fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman enum Value : SK_OT_USHORT { 2738fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Afrikaans_SouthAfrica = SkTEndian_SwapBE16(0x0436), 2748fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Albanian_Albania = SkTEndian_SwapBE16(0x041C), 2758fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Alsatian_France = SkTEndian_SwapBE16(0x0484), 2768fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Amharic_Ethiopia = SkTEndian_SwapBE16(0x045E), 2778fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Algeria = SkTEndian_SwapBE16(0x1401), 2788fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Bahrain = SkTEndian_SwapBE16(0x3C01), 2798fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Egypt = SkTEndian_SwapBE16(0x0C01), 2808fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Iraq = SkTEndian_SwapBE16(0x0801), 2818fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Jordan = SkTEndian_SwapBE16(0x2C01), 2828fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Kuwait = SkTEndian_SwapBE16(0x3401), 2838fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Lebanon = SkTEndian_SwapBE16(0x3001), 2848fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Libya = SkTEndian_SwapBE16(0x1001), 2858fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Morocco = SkTEndian_SwapBE16(0x1801), 2868fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Oman = SkTEndian_SwapBE16(0x2001), 2878fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Qatar = SkTEndian_SwapBE16(0x4001), 2888fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_SaudiArabia = SkTEndian_SwapBE16(0x0401), 2898fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Syria = SkTEndian_SwapBE16(0x2801), 2908fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Tunisia = SkTEndian_SwapBE16(0x1C01), 2918fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_UAE = SkTEndian_SwapBE16(0x3801), 2928fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Arabic_Yemen = SkTEndian_SwapBE16(0x2401), 2938fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Armenian_Armenia = SkTEndian_SwapBE16(0x042B), 2948fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Assamese_India = SkTEndian_SwapBE16(0x044D), 2958fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman AzeriCyrillic_Azerbaijan = SkTEndian_SwapBE16(0x082C), 2968fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman AzeriLatin_Azerbaijan = SkTEndian_SwapBE16(0x042C), 2978fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Bashkir_Russia = SkTEndian_SwapBE16(0x046D), 2988fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Basque_Basque = SkTEndian_SwapBE16(0x042D), 2998fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Belarusian_Belarus = SkTEndian_SwapBE16(0x0423), 3008fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Bengali_Bangladesh = SkTEndian_SwapBE16(0x0845), 3018fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Bengali_India = SkTEndian_SwapBE16(0x0445), 3028fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman BosnianCyrillic_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x201A), 3038fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman BosnianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x141A), 3048fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Breton_France = SkTEndian_SwapBE16(0x047E), 3058fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Bulgarian_Bulgaria = SkTEndian_SwapBE16(0x0402), 3068fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Catalan_Catalan = SkTEndian_SwapBE16(0x0403), 3078fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Chinese_HongKongSAR = SkTEndian_SwapBE16(0x0C04), 3088fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Chinese_MacaoSAR = SkTEndian_SwapBE16(0x1404), 3098fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Chinese_PeoplesRepublicOfChina = SkTEndian_SwapBE16(0x0804), 3108fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Chinese_Singapore = SkTEndian_SwapBE16(0x1004), 3118fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Chinese_Taiwan = SkTEndian_SwapBE16(0x0404), 3128fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Corsican_France = SkTEndian_SwapBE16(0x0483), 3138fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Croatian_Croatia = SkTEndian_SwapBE16(0x041A), 3148fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman CroatianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x101A), 3158fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Czech_CzechRepublic = SkTEndian_SwapBE16(0x0405), 3168fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Danish_Denmark = SkTEndian_SwapBE16(0x0406), 3178fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Dari_Afghanistan = SkTEndian_SwapBE16(0x048C), 3188fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Divehi_Maldives = SkTEndian_SwapBE16(0x0465), 3198fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Dutch_Belgium = SkTEndian_SwapBE16(0x0813), 3208fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Dutch_Netherlands = SkTEndian_SwapBE16(0x0413), 3218fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_Australia = SkTEndian_SwapBE16(0x0C09), 3228fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_Belize = SkTEndian_SwapBE16(0x2809), 3238fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_Canada = SkTEndian_SwapBE16(0x1009), 3248fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_Caribbean = SkTEndian_SwapBE16(0x2409), 3258fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_India = SkTEndian_SwapBE16(0x4009), 3268fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_Ireland = SkTEndian_SwapBE16(0x1809), 3278fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_Jamaica = SkTEndian_SwapBE16(0x2009), 3288fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_Malaysia = SkTEndian_SwapBE16(0x4409), 3298fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_NewZealand = SkTEndian_SwapBE16(0x1409), 3308fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_RepublicOfThePhilippines = SkTEndian_SwapBE16(0x3409), 3318fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_Singapore = SkTEndian_SwapBE16(0x4809), 3328fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_SouthAfrica = SkTEndian_SwapBE16(0x1C09), 3338fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_TrinidadAndTobago = SkTEndian_SwapBE16(0x2C09), 3348fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_UnitedKingdom = SkTEndian_SwapBE16(0x0809), 3358fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_UnitedStates = SkTEndian_SwapBE16(0x0409), 3368fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman English_Zimbabwe = SkTEndian_SwapBE16(0x3009), 3378fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Estonian_Estonia = SkTEndian_SwapBE16(0x0425), 3388fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Faroese_FaroeIslands = SkTEndian_SwapBE16(0x0438), 3398fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Filipino_Philippines = SkTEndian_SwapBE16(0x0464), 3408fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Finnish_Finland = SkTEndian_SwapBE16(0x040B), 3418fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman French_Belgium = SkTEndian_SwapBE16(0x080C), 3428fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman French_Canada = SkTEndian_SwapBE16(0x0C0C), 3438fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman French_France = SkTEndian_SwapBE16(0x040C), 3448fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman French_Luxembourg = SkTEndian_SwapBE16(0x140c), 3458fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman French_PrincipalityOfMonoco = SkTEndian_SwapBE16(0x180C), 3468fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman French_Switzerland = SkTEndian_SwapBE16(0x100C), 3478fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Frisian_Netherlands = SkTEndian_SwapBE16(0x0462), 3488fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Galician_Galician = SkTEndian_SwapBE16(0x0456), 3498fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Georgian_Georgia = SkTEndian_SwapBE16(0x0437), 3508fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman German_Austria = SkTEndian_SwapBE16(0x0C07), 3518fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman German_Germany = SkTEndian_SwapBE16(0x0407), 3528fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman German_Liechtenstein = SkTEndian_SwapBE16(0x1407), 3538fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman German_Luxembourg = SkTEndian_SwapBE16(0x1007), 3548fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman German_Switzerland = SkTEndian_SwapBE16(0x0807), 3558fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Greek_Greece = SkTEndian_SwapBE16(0x0408), 3568fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Greenlandic_Greenland = SkTEndian_SwapBE16(0x046F), 3578fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Gujarati_India = SkTEndian_SwapBE16(0x0447), 3588fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman HausaLatin_Nigeria = SkTEndian_SwapBE16(0x0468), 3598fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Hebrew_Israel = SkTEndian_SwapBE16(0x040D), 3608fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Hindi_India = SkTEndian_SwapBE16(0x0439), 3618fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Hungarian_Hungary = SkTEndian_SwapBE16(0x040E), 3628fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Icelandic_Iceland = SkTEndian_SwapBE16(0x040F), 3638fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Igbo_Nigeria = SkTEndian_SwapBE16(0x0470), 3648fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Indonesian_Indonesia = SkTEndian_SwapBE16(0x0421), 3658fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Inuktitut_Canada = SkTEndian_SwapBE16(0x045D), 3668fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman InuktitutLatin_Canada = SkTEndian_SwapBE16(0x085D), 3678fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Irish_Ireland = SkTEndian_SwapBE16(0x083C), 3688fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman isiXhosa_SouthAfrica = SkTEndian_SwapBE16(0x0434), 3698fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman isiZulu_SouthAfrica = SkTEndian_SwapBE16(0x0435), 3708fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Italian_Italy = SkTEndian_SwapBE16(0x0410), 3718fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Italian_Switzerland = SkTEndian_SwapBE16(0x0810), 3728fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Japanese_Japan = SkTEndian_SwapBE16(0x0411), 3738fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kannada_India = SkTEndian_SwapBE16(0x044B), 3748fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kazakh_Kazakhstan = SkTEndian_SwapBE16(0x043F), 3758fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Khmer_Cambodia = SkTEndian_SwapBE16(0x0453), 3768fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kiche_Guatemala = SkTEndian_SwapBE16(0x0486), 3778fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kinyarwanda_Rwanda = SkTEndian_SwapBE16(0x0487), 3788fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kiswahili_Kenya = SkTEndian_SwapBE16(0x0441), 3798fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Konkani_India = SkTEndian_SwapBE16(0x0457), 3808fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Korean_Korea = SkTEndian_SwapBE16(0x0412), 3818fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Kyrgyz_Kyrgyzstan = SkTEndian_SwapBE16(0x0440), 3828fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Lao_LaoPDR = SkTEndian_SwapBE16(0x0454), 3838fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Latvian_Latvia = SkTEndian_SwapBE16(0x0426), 3848fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Lithuanian_Lithuania = SkTEndian_SwapBE16(0x0427), 3858fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman LowerSorbian_Germany = SkTEndian_SwapBE16(0x082E), 3868fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Luxembourgish_Luxembourg = SkTEndian_SwapBE16(0x046E), 3878fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman MacedonianFYROM_FormerYugoslavRepublicOfMacedonia = SkTEndian_SwapBE16(0x042F), 3888fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Malay_BruneiDarussalam = SkTEndian_SwapBE16(0x083E), 3898fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Malay_Malaysia = SkTEndian_SwapBE16(0x043E), 3908fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Malayalam_India = SkTEndian_SwapBE16(0x044C), 3918fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Maltese_Malta = SkTEndian_SwapBE16(0x043A), 3928fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Maori_NewZealand = SkTEndian_SwapBE16(0x0481), 3938fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Mapudungun_Chile = SkTEndian_SwapBE16(0x047A), 3948fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Marathi_India = SkTEndian_SwapBE16(0x044E), 3958fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Mohawk_Mohawk = SkTEndian_SwapBE16(0x047C), 3968fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman MongolianCyrillic_Mongolia = SkTEndian_SwapBE16(0x0450), 3978fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman MongolianTraditional_PeoplesRepublicOfChina = SkTEndian_SwapBE16(0x0850), 3988fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Nepali_Nepal = SkTEndian_SwapBE16(0x0461), 3998fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman NorwegianBokmal_Norway = SkTEndian_SwapBE16(0x0414), 4008fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman NorwegianNynorsk_Norway = SkTEndian_SwapBE16(0x0814), 4018fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Occitan_France = SkTEndian_SwapBE16(0x0482), 4028fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Odia_India = SkTEndian_SwapBE16(0x0448), 4038fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Pashto_Afghanistan = SkTEndian_SwapBE16(0x0463), 4048fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Polish_Poland = SkTEndian_SwapBE16(0x0415), 4058fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Portuguese_Brazil = SkTEndian_SwapBE16(0x0416), 4068fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Portuguese_Portugal = SkTEndian_SwapBE16(0x0816), 4078fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Punjabi_India = SkTEndian_SwapBE16(0x0446), 4088fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Quechua_Bolivia = SkTEndian_SwapBE16(0x046B), 4098fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Quechua_Ecuador = SkTEndian_SwapBE16(0x086B), 4108fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Quechua_Peru = SkTEndian_SwapBE16(0x0C6B), 4118fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Romanian_Romania = SkTEndian_SwapBE16(0x0418), 4128fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Romansh_Switzerland = SkTEndian_SwapBE16(0x0417), 4138fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Russian_Russia = SkTEndian_SwapBE16(0x0419), 4148fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SamiInari_Finland = SkTEndian_SwapBE16(0x243B), 4158fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SamiLule_Norway = SkTEndian_SwapBE16(0x103B), 4168fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SamiLule_Sweden = SkTEndian_SwapBE16(0x143B), 4178fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SamiNorthern_Finland = SkTEndian_SwapBE16(0x0C3B), 4188fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SamiNorthern_Norway = SkTEndian_SwapBE16(0x043B), 4198fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SamiNorthern_Sweden = SkTEndian_SwapBE16(0x083B), 4208fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SamiSkolt_Finland = SkTEndian_SwapBE16(0x203B), 4218fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SamiSouthern_Norway = SkTEndian_SwapBE16(0x183B), 4228fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SamiSouthern_Sweden = SkTEndian_SwapBE16(0x1C3B), 4238fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Sanskrit_India = SkTEndian_SwapBE16(0x044F), 4248fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SerbianCyrillic_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x1C1A), 4258fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SerbianCyrillic_Serbia = SkTEndian_SwapBE16(0x0C1A), 4268fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SerbianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x181A), 4278fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SerbianLatin_Serbia = SkTEndian_SwapBE16(0x081A), 4288fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SesothoSaLeboa_SouthAfrica = SkTEndian_SwapBE16(0x046C), 4298fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Setswana_SouthAfrica = SkTEndian_SwapBE16(0x0432), 4308fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Sinhala_SriLanka = SkTEndian_SwapBE16(0x045B), 4318fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Slovak_Slovakia = SkTEndian_SwapBE16(0x041B), 4328fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Slovenian_Slovenia = SkTEndian_SwapBE16(0x0424), 4338fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Argentina = SkTEndian_SwapBE16(0x2C0A), 4348fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Bolivia = SkTEndian_SwapBE16(0x400A), 4358fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Chile = SkTEndian_SwapBE16(0x340A), 4368fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Colombia = SkTEndian_SwapBE16(0x240A), 4378fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_CostaRica = SkTEndian_SwapBE16(0x140A), 4388fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_DominicanRepublic = SkTEndian_SwapBE16(0x1C0A), 4398fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Ecuador = SkTEndian_SwapBE16(0x300A), 4408fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_ElSalvador = SkTEndian_SwapBE16(0x440A), 4418fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Guatemala = SkTEndian_SwapBE16(0x100A), 4428fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Honduras = SkTEndian_SwapBE16(0x480A), 4438fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Mexico = SkTEndian_SwapBE16(0x080A), 4448fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Nicaragua = SkTEndian_SwapBE16(0x4C0A), 4458fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Panama = SkTEndian_SwapBE16(0x180A), 4468fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Paraguay = SkTEndian_SwapBE16(0x3C0A), 4478fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Peru = SkTEndian_SwapBE16(0x280A), 4488fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_PuertoRico = SkTEndian_SwapBE16(0x500A), 4498fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SpanishModernSort_Spain = SkTEndian_SwapBE16(0x0C0A), 4508fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SpanishTraditionalSort_Spain = SkTEndian_SwapBE16(0x040A), 4518fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_UnitedStates = SkTEndian_SwapBE16(0x540A), 4528fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Uruguay = SkTEndian_SwapBE16(0x380A), 4538fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Spanish_Venezuela = SkTEndian_SwapBE16(0x200A), 4548fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Sweden_Finland = SkTEndian_SwapBE16(0x081D), 4558fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Swedish_Sweden = SkTEndian_SwapBE16(0x041D), 4568fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Syriac_Syria = SkTEndian_SwapBE16(0x045A), 4578fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman TajikCyrillic_Tajikistan = SkTEndian_SwapBE16(0x0428), 4588fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman TamazightLatin_Algeria = SkTEndian_SwapBE16(0x085F), 4598fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tamil_India = SkTEndian_SwapBE16(0x0449), 4608fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tatar_Russia = SkTEndian_SwapBE16(0x0444), 4618fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Telugu_India = SkTEndian_SwapBE16(0x044A), 4628fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Thai_Thailand = SkTEndian_SwapBE16(0x041E), 4638fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Tibetan_PRC = SkTEndian_SwapBE16(0x0451), 4648fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Turkish_Turkey = SkTEndian_SwapBE16(0x041F), 4658fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Turkmen_Turkmenistan = SkTEndian_SwapBE16(0x0442), 4668fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Uighur_PRC = SkTEndian_SwapBE16(0x0480), 4678fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Ukrainian_Ukraine = SkTEndian_SwapBE16(0x0422), 4688fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman UpperSorbian_Germany = SkTEndian_SwapBE16(0x042E), 4698fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Urdu_IslamicRepublicOfPakistan = SkTEndian_SwapBE16(0x0420), 4708fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman UzbekCyrillic_Uzbekistan = SkTEndian_SwapBE16(0x0843), 4718fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman UzbekLatin_Uzbekistan = SkTEndian_SwapBE16(0x0443), 4728fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Vietnamese_Vietnam = SkTEndian_SwapBE16(0x042A), 4738fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Welsh_UnitedKingdom = SkTEndian_SwapBE16(0x0452), 4748fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Wolof_Senegal = SkTEndian_SwapBE16(0x0488), 4758fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Yakut_Russia = SkTEndian_SwapBE16(0x0485), 4768fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Yi_PRC = SkTEndian_SwapBE16(0x0478), 4778fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Yoruba_Nigeria = SkTEndian_SwapBE16(0x046A), 4788fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman } value; 47907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } windows; 48007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } languageID; 48107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 48207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** NameIDs <= 0xFF are predefined. Those > 0xFF are font specific. */ 48307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com union NameID { 48407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** A font specific name id which should be greater than 0xFF. */ 48507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SK_OT_USHORT fontSpecific; 48607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct Predefined { 4878fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman enum Value : SK_OT_USHORT { 4888fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman CopyrightNotice = SkTEndian_SwapBE16(0), 4898fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman FontFamilyName = SkTEndian_SwapBE16(1), 4908fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman FontSubfamilyName = SkTEndian_SwapBE16(2), 4918fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman UniqueFontIdentifier = SkTEndian_SwapBE16(3), 4928fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman FullFontName = SkTEndian_SwapBE16(4), 4938fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman VersionString = SkTEndian_SwapBE16(5), //Version <number>.<number> 4948fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman PostscriptName = SkTEndian_SwapBE16(6), //See spec for constraints. 4958fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Trademark = SkTEndian_SwapBE16(7), 4968fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman ManufacturerName = SkTEndian_SwapBE16(8), 4978fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Designer = SkTEndian_SwapBE16(9), 4988fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman Description = SkTEndian_SwapBE16(10), 4998fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman URLVendor = SkTEndian_SwapBE16(11), 5008fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman URLDesigner = SkTEndian_SwapBE16(12), 5018fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman LicenseDescription = SkTEndian_SwapBE16(13), 5028fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman LicenseInfoURL = SkTEndian_SwapBE16(14), 5038fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman PreferredFamily = SkTEndian_SwapBE16(16), 5048fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman PreferredSubfamily = SkTEndian_SwapBE16(17), 5058fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman CompatibleFullName = SkTEndian_SwapBE16(18), 5068fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman SampleText = SkTEndian_SwapBE16(19), 5078fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman PostscriptCIDFindfontName = SkTEndian_SwapBE16(20), 5088fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman WWSFamilyName = SkTEndian_SwapBE16(21), 5098fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman WWSSubfamilyName = SkTEndian_SwapBE16(22), 5108fd23a86d0d16c93e4fa08f79cdcca4b48b6d7f9bungeman } value; 51107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } predefined; 51207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } nameID; 51307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 51407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** The length of the string in SK_OT_BYTEs. */ 51507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SK_OT_USHORT length; 51607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 51707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** Offset in SK_OT_BYTEs from start of string storage area 51807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * (see SkOTTableName::stringOffset). 51907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com */ 52007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SK_OT_USHORT offset; 52107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }; //nameRecord[count]; 52207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 52307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct Format1Ext { 52407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** The number of languageTagRecords which follow. */ 52507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SK_OT_USHORT langTagCount; 52607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 52707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** The encoding of a langTagRecord string is always UTF-16BE. 52807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * The content should follow IETF specification BCP 47. 52907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com */ 53007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct LangTagRecord { 53107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** The length of the string in SK_OT_BYTEs. */ 53207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SK_OT_USHORT length; 53307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 53407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /** Offset in SK_OT_BYTEs from start of string storage area 53507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * (see SkOTTableName::stringOffset). 53607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com */ 53707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SK_OT_USHORT offset; 53807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }; //langTagRecord[langTagCount] 53907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }; //format1ext (if format == format_1) 54007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 54107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com class Iterator { 54207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com public: 54307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com Iterator(const SkOTTableName& name) : fName(name), fIndex(0), fType(-1) { } 54407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com Iterator(const SkOTTableName& name, SkOTTableName::Record::NameID::Predefined::Value type) 545041e2dbc0614e3341e1349fd0e962744a45b6194skia.committer@gmail.com : fName(name), fIndex(0), fType(type) 54607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com { } 54707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 548a980269c2498836101146adc729ef780fb89824ebungeman@google.com void reset(SkOTTableName::Record::NameID::Predefined::Value type) { 549a980269c2498836101146adc729ef780fb89824ebungeman@google.com fIndex = 0; 550a980269c2498836101146adc729ef780fb89824ebungeman@google.com fType = type; 551a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 552a980269c2498836101146adc729ef780fb89824ebungeman@google.com 55307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct Record { 55407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkString name; 55507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkString language; 5560a25b2ccf850ea41f3b083422f0420822832c540bungeman SK_OT_USHORT type; 55707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }; 55807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com bool next(Record&); 55907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 56007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com private: 56107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com const SkOTTableName& fName; 56207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com size_t fIndex; 56307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com int fType; 56407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }; 5658ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com}; 5668ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com 5678ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com#pragma pack(pop) 5688ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com 5698ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com 57099fe82260633fcf5d92cca38d12ef0937ecca61cbungemanstatic_assert(sizeof(SkOTTableName) == 6, "sizeof_SkOTTableName_not_6"); 57199fe82260633fcf5d92cca38d12ef0937ecca61cbungemanstatic_assert(sizeof(SkOTTableName::Format1Ext) == 2, "sizeof_SkOTTableNameF1_not_2"); 57299fe82260633fcf5d92cca38d12ef0937ecca61cbungemanstatic_assert(sizeof(SkOTTableName::Format1Ext::LangTagRecord) == 4, "sizeof_SkOTTableNameLangTagRecord_not_4"); 57399fe82260633fcf5d92cca38d12ef0937ecca61cbungemanstatic_assert(sizeof(SkOTTableName::Record) == 12, "sizeof_SkOTTableNameRecord_not_12"); 5748ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com 5758ec9956bdfc173132de52acf1aa03746fabca287bungeman@google.com#endif 576