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