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