Home | History | Annotate | Download | only in autofit
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  afscript.h                                                             */
      4 /*                                                                         */
      5 /*    Auto-fitter scripts (specification only).                            */
      6 /*                                                                         */
      7 /*  Copyright 2013-2016 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   /* The following part can be included multiple times. */
     20   /* Define `SCRIPT' as needed.                         */
     21 
     22 
     23   /* Add new scripts here.  The first and second arguments are the    */
     24   /* script name in lowercase and uppercase, respectively, followed   */
     25   /* by a description string.  Then comes the corresponding HarfBuzz  */
     26   /* script name tag, followed by a string of standard characters (to */
     27   /* derive the standard width and height of stems).                  */
     28   /*                                                                  */
     29   /* Note that fallback scripts only have a default style, thus we    */
     30   /* use `HB_SCRIPT_INVALID' as the HarfBuzz script name tag for      */
     31   /* them.                                                            */
     32 
     33   SCRIPT( arab, ARAB,
     34           "Arabic",
     35           HB_SCRIPT_ARABIC,
     36           HINTING_BOTTOM_TO_TOP,
     37           "\xD9\x84 \xD8\xAD \xD9\x80" ) /*    */
     38 
     39   SCRIPT( armn, ARMN,
     40           "Armenian",
     41           HB_SCRIPT_ARMENIAN,
     42           HINTING_BOTTOM_TO_TOP,
     43           "\xD5\xBD \xD5\x8D" ) /*   */
     44 
     45   /* there are no simple forms for letters; we thus use two digit shapes */
     46   SCRIPT( beng, BENG,
     47           "Bengali",
     48           HB_SCRIPT_BENGALI,
     49           HINTING_TOP_TO_BOTTOM,
     50           "\xE0\xA7\xA6 \xE0\xA7\xAA" ) /*   */
     51 
     52   SCRIPT( cher, CHER,
     53           "Cherokee",
     54           HB_SCRIPT_CHEROKEE,
     55           HINTING_BOTTOM_TO_TOP,
     56           "\xE1\x8E\xA4 \xE1\x8F\x85 \xEA\xAE\x95" ) /*    */
     57 
     58   SCRIPT( cyrl, CYRL,
     59           "Cyrillic",
     60           HB_SCRIPT_CYRILLIC,
     61           HINTING_BOTTOM_TO_TOP,
     62           "\xD0\xBE \xD0\x9E" ) /*   */
     63 
     64   SCRIPT( deva, DEVA,
     65           "Devanagari",
     66           HB_SCRIPT_DEVANAGARI,
     67           HINTING_TOP_TO_BOTTOM,
     68           "\xE0\xA4\xA0 \xE0\xA4\xB5 \xE0\xA4\x9F" ) /*    */
     69 
     70   SCRIPT( ethi, ETHI,
     71           "Ethiopic",
     72           HB_SCRIPT_ETHIOPIC,
     73           HINTING_BOTTOM_TO_TOP,
     74           "\xE1\x8B\x90" ) /*  */
     75 
     76   SCRIPT( geor, GEOR,
     77           "Georgian (Mkhedruli)",
     78           HB_SCRIPT_GEORGIAN,
     79           HINTING_BOTTOM_TO_TOP,
     80           "\xE1\x83\x98 \xE1\x83\x94 \xE1\x83\x90" ) /*    */
     81 
     82   SCRIPT( geok, GEOK,
     83           "Georgian (Khutsuri)",
     84           HB_SCRIPT_INVALID,
     85           HINTING_BOTTOM_TO_TOP,
     86           "\xE1\x82\xB6 \xE1\x82\xB1 \xE2\xB4\x99" ) /*    */
     87 
     88   SCRIPT( grek, GREK,
     89           "Greek",
     90           HB_SCRIPT_GREEK,
     91           HINTING_BOTTOM_TO_TOP,
     92           "\xCE\xBF \xCE\x9F" ) /*   */
     93 
     94   SCRIPT( gujr, GUJR,
     95           "Gujarati",
     96           HB_SCRIPT_GUJARATI,
     97           HINTING_BOTTOM_TO_TOP,
     98           "\xE0\xAA\x9F \xE0\xAB\xA6" ) /*   */
     99 
    100   SCRIPT( guru, GURU,
    101           "Gurmukhi",
    102           HB_SCRIPT_GURMUKHI,
    103           HINTING_TOP_TO_BOTTOM,
    104           "\xE0\xA8\xA0 \xE0\xA8\xB0 \xE0\xA9\xA6" ) /*    */
    105 
    106   SCRIPT( hebr, HEBR,
    107           "Hebrew",
    108           HB_SCRIPT_HEBREW,
    109           HINTING_BOTTOM_TO_TOP,
    110           "\xD7\x9D" ) /*  */
    111 
    112   SCRIPT( knda, KNDA,
    113           "Kannada",
    114           HB_SCRIPT_KANNADA,
    115           HINTING_BOTTOM_TO_TOP,
    116           "\xE0\xB3\xA6 \xE0\xB2\xAC" ) /*   */
    117 
    118   /* only digit zero has a simple shape in the Khmer script */
    119   SCRIPT( khmr, KHMR,
    120           "Khmer",
    121           HB_SCRIPT_KHMER,
    122           HINTING_BOTTOM_TO_TOP,
    123           "\xE1\x9F\xA0" ) /*  */
    124 
    125   SCRIPT( khms, KHMS,
    126           "Khmer Symbols",
    127           HB_SCRIPT_INVALID,
    128           HINTING_BOTTOM_TO_TOP,
    129           "\xE1\xA7\xA1 \xE1\xA7\xAA" ) /*   */
    130 
    131   /* only digit zero has a simple shape in the Lao script */
    132   SCRIPT( lao, LAO,
    133           "Lao",
    134           HB_SCRIPT_LAO,
    135           HINTING_BOTTOM_TO_TOP,
    136           "\xE0\xBB\x90" ) /*  */
    137 
    138   SCRIPT( latn, LATN,
    139           "Latin",
    140           HB_SCRIPT_LATIN,
    141           HINTING_BOTTOM_TO_TOP,
    142           "o O 0" )
    143 
    144   SCRIPT( latb, LATB,
    145           "Latin Subscript Fallback",
    146           HB_SCRIPT_INVALID,
    147           HINTING_BOTTOM_TO_TOP,
    148           "\xE2\x82\x92 \xE2\x82\x80" ) /*   */
    149 
    150   SCRIPT( latp, LATP,
    151           "Latin Superscript Fallback",
    152           HB_SCRIPT_INVALID,
    153           HINTING_BOTTOM_TO_TOP,
    154           "\xE1\xB5\x92 \xE1\xB4\xBC \xE2\x81\xB0" ) /*    */
    155 
    156   SCRIPT( mlym, MLYM,
    157           "Malayalam",
    158           HB_SCRIPT_MALAYALAM,
    159           HINTING_BOTTOM_TO_TOP,
    160           "\xE0\xB4\xA0 \xE0\xB4\xB1" ) /*   */
    161 
    162   SCRIPT( mymr, MYMR,
    163           "Myanmar",
    164           HB_SCRIPT_MYANMAR,
    165           HINTING_BOTTOM_TO_TOP,
    166           "\xE1\x80\x9D \xE1\x80\x84 \xE1\x80\x82" ) /*    */
    167 
    168   SCRIPT( none, NONE,
    169           "no script",
    170           HB_SCRIPT_INVALID,
    171           HINTING_BOTTOM_TO_TOP,
    172           "" )
    173 
    174   SCRIPT( sinh, SINH,
    175           "Sinhala",
    176           HB_SCRIPT_SINHALA,
    177           HINTING_BOTTOM_TO_TOP,
    178           "\xE0\xB6\xA7" ) /*  */
    179 
    180   /* only digit zero has a simple (round) shape in the Tamil script */
    181   SCRIPT( taml, TAML,
    182           "Tamil",
    183           HB_SCRIPT_TAMIL,
    184           HINTING_BOTTOM_TO_TOP,
    185           "\xE0\xAF\xA6" ) /*  */
    186 
    187   /* there are no simple forms for letters; we thus use two digit shapes */
    188   SCRIPT( telu, TELU,
    189           "Telugu",
    190           HB_SCRIPT_TELUGU,
    191           HINTING_BOTTOM_TO_TOP,
    192           "\xE0\xB1\xA6 \xE0\xB1\xA7" ) /*   */
    193 
    194   SCRIPT( thai, THAI,
    195           "Thai",
    196           HB_SCRIPT_THAI,
    197           HINTING_BOTTOM_TO_TOP,
    198           "\xE0\xB8\xB2 \xE0\xB9\x85 \xE0\xB9\x90" ) /*    */
    199 
    200 #ifdef AF_CONFIG_OPTION_INDIC
    201 
    202   SCRIPT( limb, LIMB,
    203           "Limbu",
    204           HB_SCRIPT_LIMBU,
    205           HINTING_BOTTOM_TO_TOP,
    206           "o" ) /* XXX */
    207 
    208   SCRIPT( orya, ORYA,
    209           "Oriya",
    210           HB_SCRIPT_ORIYA,
    211           HINTING_BOTTOM_TO_TOP,
    212           "o" ) /* XXX */
    213 
    214   SCRIPT( sund, SUND,
    215           "Sundanese",
    216           HB_SCRIPT_SUNDANESE,
    217           HINTING_BOTTOM_TO_TOP,
    218           "o" ) /* XXX */
    219 
    220   SCRIPT( sylo, SYLO,
    221           "Syloti Nagri",
    222           HB_SCRIPT_SYLOTI_NAGRI,
    223           HINTING_BOTTOM_TO_TOP,
    224           "o" ) /* XXX */
    225 
    226   SCRIPT( tibt, TIBT,
    227           "Tibetan",
    228           HB_SCRIPT_TIBETAN,
    229           HINTING_BOTTOM_TO_TOP,
    230           "o" ) /* XXX */
    231 
    232 #endif /* AF_CONFIG_OPTION_INDIC */
    233 
    234 #ifdef AF_CONFIG_OPTION_CJK
    235 
    236   SCRIPT( hani, HANI,
    237           "CJKV ideographs",
    238           HB_SCRIPT_HAN,
    239           HINTING_BOTTOM_TO_TOP,
    240           "\xE7\x94\xB0 \xE5\x9B\x97" ) /*   */
    241 
    242 #endif /* AF_CONFIG_OPTION_CJK */
    243 
    244 
    245 /* END */
    246