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