1 /***************************************************************************/ 2 /* */ 3 /* ttnameid.h */ 4 /* */ 5 /* TrueType name ID definitions (specification only). */ 6 /* */ 7 /* Copyright 1996-2018 by */ 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9 /* */ 10 /* This file is part of the FreeType project, and may only be used, */ 11 /* modified, and distributed under the terms of the FreeType project */ 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13 /* this file you indicate that you have read the license and */ 14 /* understand and accept it fully. */ 15 /* */ 16 /***************************************************************************/ 17 18 19 #ifndef TTNAMEID_H_ 20 #define TTNAMEID_H_ 21 22 23 #include <ft2build.h> 24 25 26 FT_BEGIN_HEADER 27 28 29 /*************************************************************************/ 30 /* */ 31 /* <Section> */ 32 /* truetype_tables */ 33 /* */ 34 35 36 /*************************************************************************/ 37 /* */ 38 /* Possible values for the `platform' identifier code in the name */ 39 /* records of an SFNT `name' table. */ 40 /* */ 41 /*************************************************************************/ 42 43 44 /*********************************************************************** 45 * 46 * @enum: 47 * TT_PLATFORM_XXX 48 * 49 * @description: 50 * A list of valid values for the `platform_id' identifier code in 51 * @FT_CharMapRec and @FT_SfntName structures. 52 * 53 * @values: 54 * TT_PLATFORM_APPLE_UNICODE :: 55 * Used by Apple to indicate a Unicode character map and/or name entry. 56 * See @TT_APPLE_ID_XXX for corresponding `encoding_id' values. Note 57 * that name entries in this format are coded as big-endian UCS-2 58 * character codes _only_. 59 * 60 * TT_PLATFORM_MACINTOSH :: 61 * Used by Apple to indicate a MacOS-specific charmap and/or name entry. 62 * See @TT_MAC_ID_XXX for corresponding `encoding_id' values. Note that 63 * most TrueType fonts contain an Apple roman charmap to be usable on 64 * MacOS systems (even if they contain a Microsoft charmap as well). 65 * 66 * TT_PLATFORM_ISO :: 67 * This value was used to specify ISO/IEC 10646 charmaps. It is however 68 * now deprecated. See @TT_ISO_ID_XXX for a list of corresponding 69 * `encoding_id' values. 70 * 71 * TT_PLATFORM_MICROSOFT :: 72 * Used by Microsoft to indicate Windows-specific charmaps. See 73 * @TT_MS_ID_XXX for a list of corresponding `encoding_id' values. 74 * Note that most fonts contain a Unicode charmap using 75 * (TT_PLATFORM_MICROSOFT, @TT_MS_ID_UNICODE_CS). 76 * 77 * TT_PLATFORM_CUSTOM :: 78 * Used to indicate application-specific charmaps. 79 * 80 * TT_PLATFORM_ADOBE :: 81 * This value isn't part of any font format specification, but is used 82 * by FreeType to report Adobe-specific charmaps in an @FT_CharMapRec 83 * structure. See @TT_ADOBE_ID_XXX. 84 */ 85 86 #define TT_PLATFORM_APPLE_UNICODE 0 87 #define TT_PLATFORM_MACINTOSH 1 88 #define TT_PLATFORM_ISO 2 /* deprecated */ 89 #define TT_PLATFORM_MICROSOFT 3 90 #define TT_PLATFORM_CUSTOM 4 91 #define TT_PLATFORM_ADOBE 7 /* artificial */ 92 93 94 /*********************************************************************** 95 * 96 * @enum: 97 * TT_APPLE_ID_XXX 98 * 99 * @description: 100 * A list of valid values for the `encoding_id' for 101 * @TT_PLATFORM_APPLE_UNICODE charmaps and name entries. 102 * 103 * @values: 104 * TT_APPLE_ID_DEFAULT :: 105 * Unicode version 1.0. 106 * 107 * TT_APPLE_ID_UNICODE_1_1 :: 108 * Unicode 1.1; specifies Hangul characters starting at U+34xx. 109 * 110 * TT_APPLE_ID_ISO_10646 :: 111 * Deprecated (identical to preceding). 112 * 113 * TT_APPLE_ID_UNICODE_2_0 :: 114 * Unicode 2.0 and beyond (UTF-16 BMP only). 115 * 116 * TT_APPLE_ID_UNICODE_32 :: 117 * Unicode 3.1 and beyond, using UTF-32. 118 * 119 * TT_APPLE_ID_VARIANT_SELECTOR :: 120 * From Adobe, not Apple. Not a normal cmap. Specifies variations 121 * on a real cmap. 122 * 123 * TT_APPLE_ID_FULL_UNICODE :: 124 * Used for fallback fonts that provide complete Unicode coverage with 125 * a type~13 cmap. 126 */ 127 128 #define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */ 129 #define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */ 130 #define TT_APPLE_ID_ISO_10646 2 /* deprecated */ 131 #define TT_APPLE_ID_UNICODE_2_0 3 /* or later */ 132 #define TT_APPLE_ID_UNICODE_32 4 /* 2.0 or later, full repertoire */ 133 #define TT_APPLE_ID_VARIANT_SELECTOR 5 /* variation selector data */ 134 #define TT_APPLE_ID_FULL_UNICODE 6 /* used with type 13 cmaps */ 135 136 137 /*********************************************************************** 138 * 139 * @enum: 140 * TT_MAC_ID_XXX 141 * 142 * @description: 143 * A list of valid values for the `encoding_id' for 144 * @TT_PLATFORM_MACINTOSH charmaps and name entries. 145 */ 146 147 #define TT_MAC_ID_ROMAN 0 148 #define TT_MAC_ID_JAPANESE 1 149 #define TT_MAC_ID_TRADITIONAL_CHINESE 2 150 #define TT_MAC_ID_KOREAN 3 151 #define TT_MAC_ID_ARABIC 4 152 #define TT_MAC_ID_HEBREW 5 153 #define TT_MAC_ID_GREEK 6 154 #define TT_MAC_ID_RUSSIAN 7 155 #define TT_MAC_ID_RSYMBOL 8 156 #define TT_MAC_ID_DEVANAGARI 9 157 #define TT_MAC_ID_GURMUKHI 10 158 #define TT_MAC_ID_GUJARATI 11 159 #define TT_MAC_ID_ORIYA 12 160 #define TT_MAC_ID_BENGALI 13 161 #define TT_MAC_ID_TAMIL 14 162 #define TT_MAC_ID_TELUGU 15 163 #define TT_MAC_ID_KANNADA 16 164 #define TT_MAC_ID_MALAYALAM 17 165 #define TT_MAC_ID_SINHALESE 18 166 #define TT_MAC_ID_BURMESE 19 167 #define TT_MAC_ID_KHMER 20 168 #define TT_MAC_ID_THAI 21 169 #define TT_MAC_ID_LAOTIAN 22 170 #define TT_MAC_ID_GEORGIAN 23 171 #define TT_MAC_ID_ARMENIAN 24 172 #define TT_MAC_ID_MALDIVIAN 25 173 #define TT_MAC_ID_SIMPLIFIED_CHINESE 25 174 #define TT_MAC_ID_TIBETAN 26 175 #define TT_MAC_ID_MONGOLIAN 27 176 #define TT_MAC_ID_GEEZ 28 177 #define TT_MAC_ID_SLAVIC 29 178 #define TT_MAC_ID_VIETNAMESE 30 179 #define TT_MAC_ID_SINDHI 31 180 #define TT_MAC_ID_UNINTERP 32 181 182 183 /*********************************************************************** 184 * 185 * @enum: 186 * TT_ISO_ID_XXX 187 * 188 * @description: 189 * A list of valid values for the `encoding_id' for 190 * @TT_PLATFORM_ISO charmaps and name entries. 191 * 192 * Their use is now deprecated. 193 * 194 * @values: 195 * TT_ISO_ID_7BIT_ASCII :: 196 * ASCII. 197 * TT_ISO_ID_10646 :: 198 * ISO/10646. 199 * TT_ISO_ID_8859_1 :: 200 * Also known as Latin-1. 201 */ 202 203 #define TT_ISO_ID_7BIT_ASCII 0 204 #define TT_ISO_ID_10646 1 205 #define TT_ISO_ID_8859_1 2 206 207 208 /*********************************************************************** 209 * 210 * @enum: 211 * TT_MS_ID_XXX 212 * 213 * @description: 214 * A list of valid values for the `encoding_id' for 215 * @TT_PLATFORM_MICROSOFT charmaps and name entries. 216 * 217 * @values: 218 * TT_MS_ID_SYMBOL_CS :: 219 * Microsoft symbol encoding. See @FT_ENCODING_MS_SYMBOL. 220 * 221 * TT_MS_ID_UNICODE_CS :: 222 * Microsoft WGL4 charmap, matching Unicode. See 223 * @FT_ENCODING_UNICODE. 224 * 225 * TT_MS_ID_SJIS :: 226 * Shift JIS Japanese encoding. See @FT_ENCODING_SJIS. 227 * 228 * TT_MS_ID_PRC :: 229 * Chinese encodings as used in the People's Republic of China (PRC). 230 * This means the encodings GB~2312 and its supersets GBK and 231 * GB~18030. See @FT_ENCODING_PRC. 232 * 233 * TT_MS_ID_BIG_5 :: 234 * Traditional Chinese as used in Taiwan and Hong Kong. See 235 * @FT_ENCODING_BIG5. 236 * 237 * TT_MS_ID_WANSUNG :: 238 * Korean Extended Wansung encoding. See @FT_ENCODING_WANSUNG. 239 * 240 * TT_MS_ID_JOHAB :: 241 * Korean Johab encoding. See @FT_ENCODING_JOHAB. 242 * 243 * TT_MS_ID_UCS_4 :: 244 * UCS-4 or UTF-32 charmaps. This has been added to the OpenType 245 * specification version 1.4 (mid-2001). 246 */ 247 248 #define TT_MS_ID_SYMBOL_CS 0 249 #define TT_MS_ID_UNICODE_CS 1 250 #define TT_MS_ID_SJIS 2 251 #define TT_MS_ID_PRC 3 252 #define TT_MS_ID_BIG_5 4 253 #define TT_MS_ID_WANSUNG 5 254 #define TT_MS_ID_JOHAB 6 255 #define TT_MS_ID_UCS_4 10 256 257 /* this value is deprecated */ 258 #define TT_MS_ID_GB2312 TT_MS_ID_PRC 259 260 261 /*********************************************************************** 262 * 263 * @enum: 264 * TT_ADOBE_ID_XXX 265 * 266 * @description: 267 * A list of valid values for the `encoding_id' for 268 * @TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific extension! 269 * 270 * @values: 271 * TT_ADOBE_ID_STANDARD :: 272 * Adobe standard encoding. 273 * TT_ADOBE_ID_EXPERT :: 274 * Adobe expert encoding. 275 * TT_ADOBE_ID_CUSTOM :: 276 * Adobe custom encoding. 277 * TT_ADOBE_ID_LATIN_1 :: 278 * Adobe Latin~1 encoding. 279 */ 280 281 #define TT_ADOBE_ID_STANDARD 0 282 #define TT_ADOBE_ID_EXPERT 1 283 #define TT_ADOBE_ID_CUSTOM 2 284 #define TT_ADOBE_ID_LATIN_1 3 285 286 287 /*********************************************************************** 288 * 289 * @enum: 290 * TT_MAC_LANGID_XXX 291 * 292 * @description: 293 * Possible values of the language identifier field in the name records 294 * of the SFNT `name' table if the `platform' identifier code is 295 * @TT_PLATFORM_MACINTOSH. These values are also used as return values 296 * for function @FT_Get_CMap_Language_ID. 297 * 298 * The canonical source for Apple's IDs is 299 * 300 * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html 301 */ 302 303 #define TT_MAC_LANGID_ENGLISH 0 304 #define TT_MAC_LANGID_FRENCH 1 305 #define TT_MAC_LANGID_GERMAN 2 306 #define TT_MAC_LANGID_ITALIAN 3 307 #define TT_MAC_LANGID_DUTCH 4 308 #define TT_MAC_LANGID_SWEDISH 5 309 #define TT_MAC_LANGID_SPANISH 6 310 #define TT_MAC_LANGID_DANISH 7 311 #define TT_MAC_LANGID_PORTUGUESE 8 312 #define TT_MAC_LANGID_NORWEGIAN 9 313 #define TT_MAC_LANGID_HEBREW 10 314 #define TT_MAC_LANGID_JAPANESE 11 407 #define TT_MAC_LANGID_TATAR 135 408 #define TT_MAC_LANGID_UIGHUR 136 409 #define TT_MAC_LANGID_DZONGKHA 137 410 #define TT_MAC_LANGID_JAVANESE 138 411 #define TT_MAC_LANGID_SUNDANESE 139 412 413 /* The following codes are new as of 2000-03-10 */ 414 #define TT_MAC_LANGID_GALICIAN 140 415 #define TT_MAC_LANGID_AFRIKAANS 141 416 #define TT_MAC_LANGID_BRETON 142 417 #define TT_MAC_LANGID_INUKTITUT 143 418 #define TT_MAC_LANGID_SCOTTISH_GAELIC 144 419 #define TT_MAC_LANGID_MANX_GAELIC 145 420 #define TT_MAC_LANGID_IRISH_GAELIC 146 421 #define TT_MAC_LANGID_TONGAN 147 422 #define TT_MAC_LANGID_GREEK_POLYTONIC 148 423 #define TT_MAC_LANGID_GREELANDIC 149 424 #define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT 150 425 426 427 /*********************************************************************** 428 * 429 * @enum: 430 * TT_MS_LANGID_XXX 431 * 432 * @description: 433 * Possible values of the language identifier field in the name records 434 * of the SFNT `name' table if the `platform' identifier code is 435 * @TT_PLATFORM_MICROSOFT. These values are also used as return values 436 * for function @FT_Get_CMap_Language_ID. 437 * 438 * The canonical source for Microsoft's IDs is 439 * 440 * https://www.microsoft.com/globaldev/reference/lcid-all.mspx , 441 * 442 * however, we only provide macros for language identifiers present in 443 * the OpenType specification: Microsoft has abandoned the concept of 444 * LCIDs (language code identifiers), and format~1 of the `name' table 445 * provides a better mechanism for languages not covered here. 446 * 447 * More legacy values not listed in the reference can be found in the 448 * @FT_TRUETYPE_IDS_H header file. 449 */ 450 451 #define TT_MS_LANGID_ARABIC_SAUDI_ARABIA 0x0401 452 #define TT_MS_LANGID_ARABIC_IRAQ 0x0801 453 #define TT_MS_LANGID_ARABIC_EGYPT 0x0C01 454 #define TT_MS_LANGID_ARABIC_LIBYA 0x1001 455 #define TT_MS_LANGID_ARABIC_ALGERIA 0x1401 456 #define TT_MS_LANGID_ARABIC_MOROCCO 0x1801 457 #define TT_MS_LANGID_ARABIC_TUNISIA 0x1C01 458 #define TT_MS_LANGID_ARABIC_OMAN 0x2001 459 #define TT_MS_LANGID_ARABIC_YEMEN 0x2401 460 #define TT_MS_LANGID_ARABIC_SYRIA 0x2801 461 #define TT_MS_LANGID_ARABIC_JORDAN 0x2C01 462 #define TT_MS_LANGID_ARABIC_LEBANON 0x3001 463 #define TT_MS_LANGID_ARABIC_KUWAIT 0x3401 464 #define TT_MS_LANGID_ARABIC_UAE 0x3801 763 TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA 764 #define TT_MS_LANGID_SOTHO_SOUTHERN_SOUTH_AFRICA \ 765 TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA 766 #define TT_MS_LANGID_KANURI_NIGERIA 0x0471 767 #define TT_MS_LANGID_OROMO_ETHIOPIA 0x0472 768 #define TT_MS_LANGID_TIGRIGNA_ETHIOPIA 0x0473 769 #define TT_MS_LANGID_TIGRIGNA_ERYTHREA 0x0873 770 #define TT_MS_LANGID_TIGRIGNA_ERYTREA \ 771 TT_MS_LANGID_TIGRIGNA_ERYTHREA 772 #define TT_MS_LANGID_GUARANI_PARAGUAY 0x0474 773 #define TT_MS_LANGID_HAWAIIAN_UNITED_STATES 0x0475 774 #define TT_MS_LANGID_LATIN 0x0476 775 #define TT_MS_LANGID_SOMALI_SOMALIA 0x0477 776 #define TT_MS_LANGID_YI_CHINA \ 777 TT_MS_LANGID_YI_PRC 778 #define TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES 0x0479 779 #define TT_MS_LANGID_UIGHUR_CHINA \ 780 TT_MS_LANGID_UIGHUR_PRC 781 782 783 /*********************************************************************** 784 * 785 * @enum: 786 * TT_NAME_ID_XXX 787 * 788 * @description: 789 * Possible values of the `name' identifier field in the name records of 790 * an SFNT `name' table. These values are platform independent. 791 */ 792 793 #define TT_NAME_ID_COPYRIGHT 0 794 #define TT_NAME_ID_FONT_FAMILY 1 795 #define TT_NAME_ID_FONT_SUBFAMILY 2 796 #define TT_NAME_ID_UNIQUE_ID 3 797 #define TT_NAME_ID_FULL_NAME 4 798 #define TT_NAME_ID_VERSION_STRING 5 799 #define TT_NAME_ID_PS_NAME 6 800 #define TT_NAME_ID_TRADEMARK 7 801 802 /* the following values are from the OpenType spec */ 803 #define TT_NAME_ID_MANUFACTURER 8 804 #define TT_NAME_ID_DESIGNER 9 805 #define TT_NAME_ID_DESCRIPTION 10 806 #define TT_NAME_ID_VENDOR_URL 11 807 #define TT_NAME_ID_DESIGNER_URL 12 808 #define TT_NAME_ID_LICENSE 13 809 #define TT_NAME_ID_LICENSE_URL 14 810 /* number 15 is reserved */ 817 818 /* This is new in OpenType 1.3 */ 819 #define TT_NAME_ID_CID_FINDFONT_NAME 20 820 821 /* This is new in OpenType 1.5 */ 822 #define TT_NAME_ID_WWS_FAMILY 21 823 #define TT_NAME_ID_WWS_SUBFAMILY 22 824 825 /* This is new in OpenType 1.7 */ 826 #define TT_NAME_ID_LIGHT_BACKGROUND 23 827 #define TT_NAME_ID_DARK_BACKGROUND 24 828 829 /* This is new in OpenType 1.8 */ 830 #define TT_NAME_ID_VARIATIONS_PREFIX 25 831 832 /* these two values are deprecated */ 833 #define TT_NAME_ID_PREFERRED_FAMILY TT_NAME_ID_TYPOGRAPHIC_FAMILY 834 #define TT_NAME_ID_PREFERRED_SUBFAMILY TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY 835 836 837 /*********************************************************************** 838 * 839 * @enum: 840 * TT_UCR_XXX 841 * 842 * @description: 843 * Possible bit mask values for the `ulUnicodeRangeX' fields in an SFNT 844 * `OS/2' table. 845 */ 846 847 /* ulUnicodeRange1 */ 848 /* --------------- */ 849 850 /* Bit 0 Basic Latin */ 851 #define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */ 852 /* Bit 1 C1 Controls and Latin-1 Supplement */ 853 #define TT_UCR_LATIN1_SUPPLEMENT (1L << 1) /* U+0080-U+00FF */ 854 /* Bit 2 Latin Extended-A */ 855 #define TT_UCR_LATIN_EXTENDED_A (1L << 2) /* U+0100-U+017F */ 856 /* Bit 3 Latin Extended-B */ 857 #define TT_UCR_LATIN_EXTENDED_B (1L << 3) /* U+0180-U+024F */ 858 /* Bit 4 IPA Extensions */ 859 /* Phonetic Extensions */ 860 /* Phonetic Extensions Supplement */ 861 #define TT_UCR_IPA_EXTENSIONS (1L << 4) /* U+0250-U+02AF */ 862 /* U+1D00-U+1D7F */ 863 /* U+1D80-U+1DBF */ 864 /* Bit 5 Spacing Modifier Letters */ | 1 /**************************************************************************** 2 * 3 * ttnameid.h 4 * 5 * TrueType name ID definitions (specification only). 6 * 7 * Copyright (C) 1996-2019 by 8 * David Turner, Robert Wilhelm, and Werner Lemberg. 9 * 10 * This file is part of the FreeType project, and may only be used, 11 * modified, and distributed under the terms of the FreeType project 12 * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 * this file you indicate that you have read the license and 14 * understand and accept it fully. 15 * 16 */ 17 18 19 #ifndef TTNAMEID_H_ 20 #define TTNAMEID_H_ 21 22 23 #include <ft2build.h> 24 25 26 FT_BEGIN_HEADER 27 28 29 /************************************************************************** 30 * 31 * @section: 32 * truetype_tables 33 */ 34 35 36 /************************************************************************** 37 * 38 * Possible values for the 'platform' identifier code in the name records 39 * of an SFNT 'name' table. 40 * 41 */ 42 43 44 /************************************************************************** 45 * 46 * @enum: 47 * TT_PLATFORM_XXX 48 * 49 * @description: 50 * A list of valid values for the `platform_id` identifier code in 51 * @FT_CharMapRec and @FT_SfntName structures. 52 * 53 * @values: 54 * TT_PLATFORM_APPLE_UNICODE :: 55 * Used by Apple to indicate a Unicode character map and/or name entry. 56 * See @TT_APPLE_ID_XXX for corresponding `encoding_id` values. Note 57 * that name entries in this format are coded as big-endian UCS-2 58 * character codes _only_. 59 * 60 * TT_PLATFORM_MACINTOSH :: 61 * Used by Apple to indicate a MacOS-specific charmap and/or name 62 * entry. See @TT_MAC_ID_XXX for corresponding `encoding_id` values. 63 * Note that most TrueType fonts contain an Apple roman charmap to be 64 * usable on MacOS systems (even if they contain a Microsoft charmap as 65 * well). 66 * 67 * TT_PLATFORM_ISO :: 68 * This value was used to specify ISO/IEC 10646 charmaps. It is 69 * however now deprecated. See @TT_ISO_ID_XXX for a list of 70 * corresponding `encoding_id` values. 71 * 72 * TT_PLATFORM_MICROSOFT :: 73 * Used by Microsoft to indicate Windows-specific charmaps. See 74 * @TT_MS_ID_XXX for a list of corresponding `encoding_id` values. 75 * Note that most fonts contain a Unicode charmap using 76 * (`TT_PLATFORM_MICROSOFT`, @TT_MS_ID_UNICODE_CS). 77 * 78 * TT_PLATFORM_CUSTOM :: 79 * Used to indicate application-specific charmaps. 80 * 81 * TT_PLATFORM_ADOBE :: 82 * This value isn't part of any font format specification, but is used 83 * by FreeType to report Adobe-specific charmaps in an @FT_CharMapRec 84 * structure. See @TT_ADOBE_ID_XXX. 85 */ 86 87 #define TT_PLATFORM_APPLE_UNICODE 0 88 #define TT_PLATFORM_MACINTOSH 1 89 #define TT_PLATFORM_ISO 2 /* deprecated */ 90 #define TT_PLATFORM_MICROSOFT 3 91 #define TT_PLATFORM_CUSTOM 4 92 #define TT_PLATFORM_ADOBE 7 /* artificial */ 93 94 95 /************************************************************************** 96 * 97 * @enum: 98 * TT_APPLE_ID_XXX 99 * 100 * @description: 101 * A list of valid values for the `encoding_id` for 102 * @TT_PLATFORM_APPLE_UNICODE charmaps and name entries. 103 * 104 * @values: 105 * TT_APPLE_ID_DEFAULT :: 106 * Unicode version 1.0. 107 * 108 * TT_APPLE_ID_UNICODE_1_1 :: 109 * Unicode 1.1; specifies Hangul characters starting at U+34xx. 110 * 111 * TT_APPLE_ID_ISO_10646 :: 112 * Deprecated (identical to preceding). 113 * 114 * TT_APPLE_ID_UNICODE_2_0 :: 115 * Unicode 2.0 and beyond (UTF-16 BMP only). 116 * 117 * TT_APPLE_ID_UNICODE_32 :: 118 * Unicode 3.1 and beyond, using UTF-32. 119 * 120 * TT_APPLE_ID_VARIANT_SELECTOR :: 121 * From Adobe, not Apple. Not a normal cmap. Specifies variations on 122 * a real cmap. 123 * 124 * TT_APPLE_ID_FULL_UNICODE :: 125 * Used for fallback fonts that provide complete Unicode coverage with 126 * a type~13 cmap. 127 */ 128 129 #define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */ 130 #define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */ 131 #define TT_APPLE_ID_ISO_10646 2 /* deprecated */ 132 #define TT_APPLE_ID_UNICODE_2_0 3 /* or later */ 133 #define TT_APPLE_ID_UNICODE_32 4 /* 2.0 or later, full repertoire */ 134 #define TT_APPLE_ID_VARIANT_SELECTOR 5 /* variation selector data */ 135 #define TT_APPLE_ID_FULL_UNICODE 6 /* used with type 13 cmaps */ 136 137 138 /************************************************************************** 139 * 140 * @enum: 141 * TT_MAC_ID_XXX 142 * 143 * @description: 144 * A list of valid values for the `encoding_id` for 145 * @TT_PLATFORM_MACINTOSH charmaps and name entries. 146 */ 147 148 #define TT_MAC_ID_ROMAN 0 149 #define TT_MAC_ID_JAPANESE 1 150 #define TT_MAC_ID_TRADITIONAL_CHINESE 2 151 #define TT_MAC_ID_KOREAN 3 152 #define TT_MAC_ID_ARABIC 4 153 #define TT_MAC_ID_HEBREW 5 154 #define TT_MAC_ID_GREEK 6 155 #define TT_MAC_ID_RUSSIAN 7 156 #define TT_MAC_ID_RSYMBOL 8 157 #define TT_MAC_ID_DEVANAGARI 9 158 #define TT_MAC_ID_GURMUKHI 10 159 #define TT_MAC_ID_GUJARATI 11 160 #define TT_MAC_ID_ORIYA 12 161 #define TT_MAC_ID_BENGALI 13 162 #define TT_MAC_ID_TAMIL 14 163 #define TT_MAC_ID_TELUGU 15 164 #define TT_MAC_ID_KANNADA 16 165 #define TT_MAC_ID_MALAYALAM 17 166 #define TT_MAC_ID_SINHALESE 18 167 #define TT_MAC_ID_BURMESE 19 168 #define TT_MAC_ID_KHMER 20 169 #define TT_MAC_ID_THAI 21 170 #define TT_MAC_ID_LAOTIAN 22 171 #define TT_MAC_ID_GEORGIAN 23 172 #define TT_MAC_ID_ARMENIAN 24 173 #define TT_MAC_ID_MALDIVIAN 25 174 #define TT_MAC_ID_SIMPLIFIED_CHINESE 25 175 #define TT_MAC_ID_TIBETAN 26 176 #define TT_MAC_ID_MONGOLIAN 27 177 #define TT_MAC_ID_GEEZ 28 178 #define TT_MAC_ID_SLAVIC 29 179 #define TT_MAC_ID_VIETNAMESE 30 180 #define TT_MAC_ID_SINDHI 31 181 #define TT_MAC_ID_UNINTERP 32 182 183 184 /************************************************************************** 185 * 186 * @enum: 187 * TT_ISO_ID_XXX 188 * 189 * @description: 190 * A list of valid values for the `encoding_id` for @TT_PLATFORM_ISO 191 * charmaps and name entries. 192 * 193 * Their use is now deprecated. 194 * 195 * @values: 196 * TT_ISO_ID_7BIT_ASCII :: 197 * ASCII. 198 * TT_ISO_ID_10646 :: 199 * ISO/10646. 200 * TT_ISO_ID_8859_1 :: 201 * Also known as Latin-1. 202 */ 203 204 #define TT_ISO_ID_7BIT_ASCII 0 205 #define TT_ISO_ID_10646 1 206 #define TT_ISO_ID_8859_1 2 207 208 209 /************************************************************************** 210 * 211 * @enum: 212 * TT_MS_ID_XXX 213 * 214 * @description: 215 * A list of valid values for the `encoding_id` for 216 * @TT_PLATFORM_MICROSOFT charmaps and name entries. 217 * 218 * @values: 219 * TT_MS_ID_SYMBOL_CS :: 220 * Microsoft symbol encoding. See @FT_ENCODING_MS_SYMBOL. 221 * 222 * TT_MS_ID_UNICODE_CS :: 223 * Microsoft WGL4 charmap, matching Unicode. See @FT_ENCODING_UNICODE. 224 * 225 * TT_MS_ID_SJIS :: 226 * Shift JIS Japanese encoding. See @FT_ENCODING_SJIS. 227 * 228 * TT_MS_ID_PRC :: 229 * Chinese encodings as used in the People's Republic of China (PRC). 230 * This means the encodings GB~2312 and its supersets GBK and GB~18030. 231 * See @FT_ENCODING_PRC. 232 * 233 * TT_MS_ID_BIG_5 :: 234 * Traditional Chinese as used in Taiwan and Hong Kong. See 235 * @FT_ENCODING_BIG5. 236 * 237 * TT_MS_ID_WANSUNG :: 238 * Korean Extended Wansung encoding. See @FT_ENCODING_WANSUNG. 239 * 240 * TT_MS_ID_JOHAB :: 241 * Korean Johab encoding. See @FT_ENCODING_JOHAB. 242 * 243 * TT_MS_ID_UCS_4 :: 244 * UCS-4 or UTF-32 charmaps. This has been added to the OpenType 245 * specification version 1.4 (mid-2001). 246 */ 247 248 #define TT_MS_ID_SYMBOL_CS 0 249 #define TT_MS_ID_UNICODE_CS 1 250 #define TT_MS_ID_SJIS 2 251 #define TT_MS_ID_PRC 3 252 #define TT_MS_ID_BIG_5 4 253 #define TT_MS_ID_WANSUNG 5 254 #define TT_MS_ID_JOHAB 6 255 #define TT_MS_ID_UCS_4 10 256 257 /* this value is deprecated */ 258 #define TT_MS_ID_GB2312 TT_MS_ID_PRC 259 260 261 /************************************************************************** 262 * 263 * @enum: 264 * TT_ADOBE_ID_XXX 265 * 266 * @description: 267 * A list of valid values for the `encoding_id` for @TT_PLATFORM_ADOBE 268 * charmaps. This is a FreeType-specific extension! 269 * 270 * @values: 271 * TT_ADOBE_ID_STANDARD :: 272 * Adobe standard encoding. 273 * TT_ADOBE_ID_EXPERT :: 274 * Adobe expert encoding. 275 * TT_ADOBE_ID_CUSTOM :: 276 * Adobe custom encoding. 277 * TT_ADOBE_ID_LATIN_1 :: 278 * Adobe Latin~1 encoding. 279 */ 280 281 #define TT_ADOBE_ID_STANDARD 0 282 #define TT_ADOBE_ID_EXPERT 1 283 #define TT_ADOBE_ID_CUSTOM 2 284 #define TT_ADOBE_ID_LATIN_1 3 285 286 287 /************************************************************************** 288 * 289 * @enum: 290 * TT_MAC_LANGID_XXX 291 * 292 * @description: 293 * Possible values of the language identifier field in the name records 294 * of the SFNT 'name' table if the 'platform' identifier code is 295 * @TT_PLATFORM_MACINTOSH. These values are also used as return values 296 * for function @FT_Get_CMap_Language_ID. 297 * 298 * The canonical source for Apple's IDs is 299 * 300 * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html 301 */ 302 303 #define TT_MAC_LANGID_ENGLISH 0 304 #define TT_MAC_LANGID_FRENCH 1 305 #define TT_MAC_LANGID_GERMAN 2 306 #define TT_MAC_LANGID_ITALIAN 3 307 #define TT_MAC_LANGID_DUTCH 4 308 #define TT_MAC_LANGID_SWEDISH 5 309 #define TT_MAC_LANGID_SPANISH 6 310 #define TT_MAC_LANGID_DANISH 7 311 #define TT_MAC_LANGID_PORTUGUESE 8 312 #define TT_MAC_LANGID_NORWEGIAN 9 313 #define TT_MAC_LANGID_HEBREW 10 314 #define TT_MAC_LANGID_JAPANESE 11 407 #define TT_MAC_LANGID_TATAR 135 408 #define TT_MAC_LANGID_UIGHUR 136 409 #define TT_MAC_LANGID_DZONGKHA 137 410 #define TT_MAC_LANGID_JAVANESE 138 411 #define TT_MAC_LANGID_SUNDANESE 139 412 413 /* The following codes are new as of 2000-03-10 */ 414 #define TT_MAC_LANGID_GALICIAN 140 415 #define TT_MAC_LANGID_AFRIKAANS 141 416 #define TT_MAC_LANGID_BRETON 142 417 #define TT_MAC_LANGID_INUKTITUT 143 418 #define TT_MAC_LANGID_SCOTTISH_GAELIC 144 419 #define TT_MAC_LANGID_MANX_GAELIC 145 420 #define TT_MAC_LANGID_IRISH_GAELIC 146 421 #define TT_MAC_LANGID_TONGAN 147 422 #define TT_MAC_LANGID_GREEK_POLYTONIC 148 423 #define TT_MAC_LANGID_GREELANDIC 149 424 #define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT 150 425 426 427 /************************************************************************** 428 * 429 * @enum: 430 * TT_MS_LANGID_XXX 431 * 432 * @description: 433 * Possible values of the language identifier field in the name records 434 * of the SFNT 'name' table if the 'platform' identifier code is 435 * @TT_PLATFORM_MICROSOFT. These values are also used as return values 436 * for function @FT_Get_CMap_Language_ID. 437 * 438 * The canonical source for Microsoft's IDs is 439 * 440 * https://docs.microsoft.com/en-us/windows/desktop/Intl/language-identifier-constants-and-strings , 441 * 442 * however, we only provide macros for language identifiers present in 443 * the OpenType specification: Microsoft has abandoned the concept of 444 * LCIDs (language code identifiers), and format~1 of the 'name' table 445 * provides a better mechanism for languages not covered here. 446 * 447 * More legacy values not listed in the reference can be found in the 448 * @FT_TRUETYPE_IDS_H header file. 449 */ 450 451 #define TT_MS_LANGID_ARABIC_SAUDI_ARABIA 0x0401 452 #define TT_MS_LANGID_ARABIC_IRAQ 0x0801 453 #define TT_MS_LANGID_ARABIC_EGYPT 0x0C01 454 #define TT_MS_LANGID_ARABIC_LIBYA 0x1001 455 #define TT_MS_LANGID_ARABIC_ALGERIA 0x1401 456 #define TT_MS_LANGID_ARABIC_MOROCCO 0x1801 457 #define TT_MS_LANGID_ARABIC_TUNISIA 0x1C01 458 #define TT_MS_LANGID_ARABIC_OMAN 0x2001 459 #define TT_MS_LANGID_ARABIC_YEMEN 0x2401 460 #define TT_MS_LANGID_ARABIC_SYRIA 0x2801 461 #define TT_MS_LANGID_ARABIC_JORDAN 0x2C01 462 #define TT_MS_LANGID_ARABIC_LEBANON 0x3001 463 #define TT_MS_LANGID_ARABIC_KUWAIT 0x3401 464 #define TT_MS_LANGID_ARABIC_UAE 0x3801 763 TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA 764 #define TT_MS_LANGID_SOTHO_SOUTHERN_SOUTH_AFRICA \ 765 TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA 766 #define TT_MS_LANGID_KANURI_NIGERIA 0x0471 767 #define TT_MS_LANGID_OROMO_ETHIOPIA 0x0472 768 #define TT_MS_LANGID_TIGRIGNA_ETHIOPIA 0x0473 769 #define TT_MS_LANGID_TIGRIGNA_ERYTHREA 0x0873 770 #define TT_MS_LANGID_TIGRIGNA_ERYTREA \ 771 TT_MS_LANGID_TIGRIGNA_ERYTHREA 772 #define TT_MS_LANGID_GUARANI_PARAGUAY 0x0474 773 #define TT_MS_LANGID_HAWAIIAN_UNITED_STATES 0x0475 774 #define TT_MS_LANGID_LATIN 0x0476 775 #define TT_MS_LANGID_SOMALI_SOMALIA 0x0477 776 #define TT_MS_LANGID_YI_CHINA \ 777 TT_MS_LANGID_YI_PRC 778 #define TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES 0x0479 779 #define TT_MS_LANGID_UIGHUR_CHINA \ 780 TT_MS_LANGID_UIGHUR_PRC 781 782 783 /************************************************************************** 784 * 785 * @enum: 786 * TT_NAME_ID_XXX 787 * 788 * @description: 789 * Possible values of the 'name' identifier field in the name records of 790 * an SFNT 'name' table. These values are platform independent. 791 */ 792 793 #define TT_NAME_ID_COPYRIGHT 0 794 #define TT_NAME_ID_FONT_FAMILY 1 795 #define TT_NAME_ID_FONT_SUBFAMILY 2 796 #define TT_NAME_ID_UNIQUE_ID 3 797 #define TT_NAME_ID_FULL_NAME 4 798 #define TT_NAME_ID_VERSION_STRING 5 799 #define TT_NAME_ID_PS_NAME 6 800 #define TT_NAME_ID_TRADEMARK 7 801 802 /* the following values are from the OpenType spec */ 803 #define TT_NAME_ID_MANUFACTURER 8 804 #define TT_NAME_ID_DESIGNER 9 805 #define TT_NAME_ID_DESCRIPTION 10 806 #define TT_NAME_ID_VENDOR_URL 11 807 #define TT_NAME_ID_DESIGNER_URL 12 808 #define TT_NAME_ID_LICENSE 13 809 #define TT_NAME_ID_LICENSE_URL 14 810 /* number 15 is reserved */ 817 818 /* This is new in OpenType 1.3 */ 819 #define TT_NAME_ID_CID_FINDFONT_NAME 20 820 821 /* This is new in OpenType 1.5 */ 822 #define TT_NAME_ID_WWS_FAMILY 21 823 #define TT_NAME_ID_WWS_SUBFAMILY 22 824 825 /* This is new in OpenType 1.7 */ 826 #define TT_NAME_ID_LIGHT_BACKGROUND 23 827 #define TT_NAME_ID_DARK_BACKGROUND 24 828 829 /* This is new in OpenType 1.8 */ 830 #define TT_NAME_ID_VARIATIONS_PREFIX 25 831 832 /* these two values are deprecated */ 833 #define TT_NAME_ID_PREFERRED_FAMILY TT_NAME_ID_TYPOGRAPHIC_FAMILY 834 #define TT_NAME_ID_PREFERRED_SUBFAMILY TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY 835 836 837 /************************************************************************** 838 * 839 * @enum: 840 * TT_UCR_XXX 841 * 842 * @description: 843 * Possible bit mask values for the `ulUnicodeRangeX` fields in an SFNT 844 * 'OS/2' table. 845 */ 846 847 /* ulUnicodeRange1 */ 848 /* --------------- */ 849 850 /* Bit 0 Basic Latin */ 851 #define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */ 852 /* Bit 1 C1 Controls and Latin-1 Supplement */ 853 #define TT_UCR_LATIN1_SUPPLEMENT (1L << 1) /* U+0080-U+00FF */ 854 /* Bit 2 Latin Extended-A */ 855 #define TT_UCR_LATIN_EXTENDED_A (1L << 2) /* U+0100-U+017F */ 856 /* Bit 3 Latin Extended-B */ 857 #define TT_UCR_LATIN_EXTENDED_B (1L << 3) /* U+0180-U+024F */ 858 /* Bit 4 IPA Extensions */ 859 /* Phonetic Extensions */ 860 /* Phonetic Extensions Supplement */ 861 #define TT_UCR_IPA_EXTENSIONS (1L << 4) /* U+0250-U+02AF */ 862 /* U+1D00-U+1D7F */ 863 /* U+1D80-U+1DBF */ 864 /* Bit 5 Spacing Modifier Letters */ |