Home | History | Annotate | Download | only in gxvalid
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  gxvfeat.h                                                              */
      4 /*                                                                         */
      5 /*    TrueTypeGX/AAT feat table validation (specification).                */
      6 /*                                                                         */
      7 /*  Copyright 2004-2018 by                                                 */
      8 /*  suzuki toshiya, Masatake YAMATO, Red Hat K.K.,                         */
      9 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
     10 /*                                                                         */
     11 /*  This file is part of the FreeType project, and may only be used,       */
     12 /*  modified, and distributed under the terms of the FreeType project      */
     13 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
     14 /*  this file you indicate that you have read the license and              */
     15 /*  understand and accept it fully.                                        */
     16 /*                                                                         */
     17 /***************************************************************************/
     18 
     19 /***************************************************************************/
     20 /*                                                                         */
     21 /* gxvalid is derived from both gxlayout module and otvalid module.        */
     22 /* Development of gxlayout is supported by the Information-technology      */
     23 /* Promotion Agency(IPA), Japan.                                           */
     24 /*                                                                         */
     25 /***************************************************************************/
     26 
     27 
     28 #ifndef GXVFEAT_H_
     29 #define GXVFEAT_H_
     30 
     31 
     32 #include "gxvalid.h"
     33 #include "gxvcommn.h"
     34 
     35 
     36   /*************************************************************************/
     37   /*************************************************************************/
     38   /*****                                                               *****/
     39   /*****                Registry predefined by Apple                   *****/
     40   /*****                                                               *****/
     41   /*************************************************************************/
     42   /*************************************************************************/
     43 
     44   /* TODO: More compact format */
     45   typedef struct  GXV_Feature_RegistryRec_
     46   {
     47     FT_Bool  existence;
     48     FT_Bool  apple_reserved;
     49     FT_Bool  exclusive;
     50     FT_Byte  nSettings;
     51 
     52   } GX_Feature_RegistryRec;
     53 
     54 
     55 #define gxv_feat_registry_length                  \
     56           ( sizeof ( gxv_feat_registry ) /        \
     57               sizeof ( GX_Feature_RegistryRec ) )
     58 
     59 
     60   static GX_Feature_RegistryRec  gxv_feat_registry[] =
     61   {
     62     /* Generated from gxvfgen.c */
     63     {1, 0, 0,  1},   /* All Typographic Features */
     64     {1, 0, 0,  8},   /* Ligatures */
     65     {1, 0, 1,  3},   /* Cursive Connection */
     66     {1, 0, 1,  6},   /* Letter Case */
     67     {1, 0, 0,  1},   /* Vertical Substitution */
     68     {1, 0, 0,  1},   /* Linguistic Rearrangement */
     69     {1, 0, 1,  2},   /* Number Spacing */
     70     {1, 1, 0,  0},   /* Apple Reserved 1 */
     71     {1, 0, 0,  5},   /* Smart Swashes */
     72     {1, 0, 1,  3},   /* Diacritics */
     73     {1, 0, 1,  4},   /* Vertical Position */
     74     {1, 0, 1,  3},   /* Fractions */
     75     {1, 1, 0,  0},   /* Apple Reserved 2 */
     76     {1, 0, 0,  1},   /* Overlapping Characters */
     77     {1, 0, 0,  6},   /* Typographic Extras */
     78     {1, 0, 0,  5},   /* Mathematical Extras */
     79     {1, 0, 1,  7},   /* Ornament Sets */
     80     {1, 0, 1,  1},   /* Character Alternatives */
     81     {1, 0, 1,  5},   /* Design Complexity */
     82     {1, 0, 1,  6},   /* Style Options */
     83     {1, 0, 1, 11},   /* Character Shape */
     84     {1, 0, 1,  2},   /* Number Case */
     85     {1, 0, 1,  4},   /* Text Spacing */
     86     {1, 0, 1, 10},   /* Transliteration */
     87     {1, 0, 1,  9},   /* Annotation */
     88     {1, 0, 1,  2},   /* Kana Spacing */
     89     {1, 0, 1,  2},   /* Ideographic Spacing */
     90     {0, 0, 0,  0},   /* __EMPTY__ */
     91     {0, 0, 0,  0},   /* __EMPTY__ */
     92     {0, 0, 0,  0},   /* __EMPTY__ */
     93     {0, 0, 0,  0},   /* __EMPTY__ */
     94     {0, 0, 0,  0},   /* __EMPTY__ */
     95     {0, 0, 0,  0},   /* __EMPTY__ */
     96     {0, 0, 0,  0},   /* __EMPTY__ */
     97     {0, 0, 0,  0},   /* __EMPTY__ */
     98     {0, 0, 0,  0},   /* __EMPTY__ */
     99     {0, 0, 0,  0},   /* __EMPTY__ */
    100     {0, 0, 0,  0},   /* __EMPTY__ */
    101     {0, 0, 0,  0},   /* __EMPTY__ */
    102     {0, 0, 0,  0},   /* __EMPTY__ */
    103     {0, 0, 0,  0},   /* __EMPTY__ */
    104     {0, 0, 0,  0},   /* __EMPTY__ */
    105     {0, 0, 0,  0},   /* __EMPTY__ */
    106     {0, 0, 0,  0},   /* __EMPTY__ */
    107     {0, 0, 0,  0},   /* __EMPTY__ */
    108     {0, 0, 0,  0},   /* __EMPTY__ */
    109     {0, 0, 0,  0},   /* __EMPTY__ */
    110     {0, 0, 0,  0},   /* __EMPTY__ */
    111     {0, 0, 0,  0},   /* __EMPTY__ */
    112     {0, 0, 0,  0},   /* __EMPTY__ */
    113     {0, 0, 0,  0},   /* __EMPTY__ */
    114     {0, 0, 0,  0},   /* __EMPTY__ */
    115     {0, 0, 0,  0},   /* __EMPTY__ */
    116     {0, 0, 0,  0},   /* __EMPTY__ */
    117     {0, 0, 0,  0},   /* __EMPTY__ */
    118     {0, 0, 0,  0},   /* __EMPTY__ */
    119     {0, 0, 0,  0},   /* __EMPTY__ */
    120     {0, 0, 0,  0},   /* __EMPTY__ */
    121     {0, 0, 0,  0},   /* __EMPTY__ */
    122     {0, 0, 0,  0},   /* __EMPTY__ */
    123     {0, 0, 0,  0},   /* __EMPTY__ */
    124     {0, 0, 0,  0},   /* __EMPTY__ */
    125     {0, 0, 0,  0},   /* __EMPTY__ */
    126     {0, 0, 0,  0},   /* __EMPTY__ */
    127     {0, 0, 0,  0},   /* __EMPTY__ */
    128     {0, 0, 0,  0},   /* __EMPTY__ */
    129     {0, 0, 0,  0},   /* __EMPTY__ */
    130     {0, 0, 0,  0},   /* __EMPTY__ */
    131     {0, 0, 0,  0},   /* __EMPTY__ */
    132     {0, 0, 0,  0},   /* __EMPTY__ */
    133     {0, 0, 0,  0},   /* __EMPTY__ */
    134     {0, 0, 0,  0},   /* __EMPTY__ */
    135     {0, 0, 0,  0},   /* __EMPTY__ */
    136     {0, 0, 0,  0},   /* __EMPTY__ */
    137     {0, 0, 0,  0},   /* __EMPTY__ */
    138     {0, 0, 0,  0},   /* __EMPTY__ */
    139     {0, 0, 0,  0},   /* __EMPTY__ */
    140     {0, 0, 0,  0},   /* __EMPTY__ */
    141     {0, 0, 0,  0},   /* __EMPTY__ */
    142     {0, 0, 0,  0},   /* __EMPTY__ */
    143     {0, 0, 0,  0},   /* __EMPTY__ */
    144     {0, 0, 0,  0},   /* __EMPTY__ */
    145     {0, 0, 0,  0},   /* __EMPTY__ */
    146     {0, 0, 0,  0},   /* __EMPTY__ */
    147     {0, 0, 0,  0},   /* __EMPTY__ */
    148     {0, 0, 0,  0},   /* __EMPTY__ */
    149     {0, 0, 0,  0},   /* __EMPTY__ */
    150     {0, 0, 0,  0},   /* __EMPTY__ */
    151     {0, 0, 0,  0},   /* __EMPTY__ */
    152     {0, 0, 0,  0},   /* __EMPTY__ */
    153     {0, 0, 0,  0},   /* __EMPTY__ */
    154     {0, 0, 0,  0},   /* __EMPTY__ */
    155     {0, 0, 0,  0},   /* __EMPTY__ */
    156     {0, 0, 0,  0},   /* __EMPTY__ */
    157     {0, 0, 0,  0},   /* __EMPTY__ */
    158     {0, 0, 0,  0},   /* __EMPTY__ */
    159     {0, 0, 0,  0},   /* __EMPTY__ */
    160     {0, 0, 0,  0},   /* __EMPTY__ */
    161     {0, 0, 0,  0},   /* __EMPTY__ */
    162     {0, 0, 0,  0},   /* __EMPTY__ */
    163     {1, 0, 1,  4},   /* Text Spacing */
    164     {1, 0, 1,  2},   /* Kana Spacing */
    165     {1, 0, 1,  2},   /* Ideographic Spacing */
    166     {1, 0, 1,  4},   /* CJK Roman Spacing */
    167   };
    168 
    169 
    170 #endif /* GXVFEAT_H_ */
    171 
    172 
    173 /* END */
    174