• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 */
174