< prev index next >

src/java.desktop/share/native/libfreetype/include/freetype/ttnameid.h

Print this page


   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 */


< prev index next >