(root)/
freetype-2.13.2/
src/
gxvalid/
gxvfeat.h
       1  /****************************************************************************
       2   *
       3   * gxvfeat.h
       4   *
       5   *   TrueTypeGX/AAT feat table validation (specification).
       6   *
       7   * Copyright (C) 2004-2023 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 */