1 /***************************************************************************/ 2 /* */ 3 /* gxvfeat.h */ 4 /* */ 5 /* TrueTypeGX/AAT feat table validation (specification). */ 6 /* */ 7 /* Copyright 2004, 2005 by suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9 /* */ 10 /* This file is part of the FreeType project, and may only be used, */ 11 /* modified, and distributed under the terms of the FreeType project */ 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13 /* this file you indicate that you have read the license and */ 14 /* understand and accept it fully. */ 15 /* */ 16 /***************************************************************************/ 17 18 /***************************************************************************/ 19 /* */ 20 /* gxvalid is derived from both gxlayout module and otvalid module. */ 21 /* Development of gxlayout is supported by the Information-technology */ 22 /* Promotion Agency(IPA), Japan. */ 23 /* */ 24 /***************************************************************************/ 25 26 27 #ifndef __GXVFEAT_H__ 28 #define __GXVFEAT_H__ 29 30 31 #include "gxvalid.h" 32 #include "gxvcommn.h" 33 34 35 /*************************************************************************/ 36 /*************************************************************************/ 37 /***** *****/ 38 /***** Registry predefined by Apple *****/ 39 /***** *****/ 40 /*************************************************************************/ 41 /*************************************************************************/ 42 43 /* TODO: More compact format */ 44 typedef struct GXV_Feature_RegistryRec_ 45 { 46 FT_Bool existence; 47 FT_Bool apple_reserved; 48 FT_Bool exclusive; 49 FT_Byte nSettings; 50 51 } GX_Feature_RegistryRec; 52 53 54 #define gxv_feat_registry_length \ 55 ( sizeof ( gxv_feat_registry ) / \ 56 sizeof ( GX_Feature_RegistryRec ) ) 57 58 59 static GX_Feature_RegistryRec gxv_feat_registry[] = 60 { 61 /* Generated from gxvfgen.c */ 62 {1, 0, 0, 1}, /* All Typographic Features */ 63 {1, 0, 0, 8}, /* Ligatures */ 64 {1, 0, 1, 3}, /* Cursive Connection */ 65 {1, 0, 1, 6}, /* Letter Case */ 66 {1, 0, 0, 1}, /* Vertical Substitution */ 67 {1, 0, 0, 1}, /* Linguistic Rearrangement */ 68 {1, 0, 1, 2}, /* Number Spacing */ 69 {1, 1, 0, 0}, /* Apple Reserved 1 */ 70 {1, 0, 0, 5}, /* Smart Swashes */ 71 {1, 0, 1, 3}, /* Diacritics */ 72 {1, 0, 1, 4}, /* Vertical Position */ 73 {1, 0, 1, 3}, /* Fractions */ 74 {1, 1, 0, 0}, /* Apple Reserved 2 */ 75 {1, 0, 0, 1}, /* Overlapping Characters */ 76 {1, 0, 0, 6}, /* Typographic Extras */ 77 {1, 0, 0, 5}, /* Mathematical Extras */ 78 {1, 0, 1, 7}, /* Ornament Sets */ 79 {1, 0, 1, 1}, /* Character Alternatives */ 80 {1, 0, 1, 5}, /* Design Complexity */ 81 {1, 0, 1, 6}, /* Style Options */ 82 {1, 0, 1, 11}, /* Character Shape */ 83 {1, 0, 1, 2}, /* Number Case */ 84 {1, 0, 1, 4}, /* Text Spacing */ 85 {1, 0, 1, 10}, /* Transliteration */ 86 {1, 0, 1, 9}, /* Annotation */ 87 {1, 0, 1, 2}, /* Kana Spacing */ 88 {1, 0, 1, 2}, /* Ideographic Spacing */ 89 {0, 0, 0, 0}, /* __EMPTY__ */ 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 {1, 0, 1, 4}, /* Text Spacing */ 163 {1, 0, 1, 2}, /* Kana Spacing */ 164 {1, 0, 1, 2}, /* Ideographic Spacing */ 165 {1, 0, 1, 4}, /* CJK Roman Spacing */ 166 }; 167 168 169 #endif /* __GXVFEAT_H__ */ 170 171 172 /* END */ 173