00001 /***************************************************************************/ 00002 /* */ 00003 /* gxvfeat.h */ 00004 /* */ 00005 /* TrueTypeGX/AAT feat table validation (specification). */ 00006 /* */ 00007 /* Copyright 2004, 2005 by suzuki toshiya, Masatake YAMATO, Red Hat K.K., */ 00008 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 00009 /* */ 00010 /* This file is part of the FreeType project, and may only be used, */ 00011 /* modified, and distributed under the terms of the FreeType project */ 00012 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 00013 /* this file you indicate that you have read the license and */ 00014 /* understand and accept it fully. */ 00015 /* */ 00016 /***************************************************************************/ 00017 00018 /***************************************************************************/ 00019 /* */ 00020 /* gxvalid is derived from both gxlayout module and otvalid module. */ 00021 /* Development of gxlayout is supported by the Information-technology */ 00022 /* Promotion Agency(IPA), Japan. */ 00023 /* */ 00024 /***************************************************************************/ 00025 00026 00027 #ifndef __GXVFEAT_H__ 00028 #define __GXVFEAT_H__ 00029 00030 00031 #include "gxvalid.h" 00032 #include "gxvcommn.h" 00033 00034 00035 /*************************************************************************/ 00036 /*************************************************************************/ 00037 /***** *****/ 00038 /***** Registry predefined by Apple *****/ 00039 /***** *****/ 00040 /*************************************************************************/ 00041 /*************************************************************************/ 00042 00043 /* TODO: More compact format */ 00044 typedef struct GXV_Feature_RegistryRec_ 00045 { 00046 FT_Bool existence; 00047 FT_Bool apple_reserved; 00048 FT_Bool exclusive; 00049 FT_Byte nSettings; 00050 00051 } GX_Feature_RegistryRec; 00052 00053 00054 #define gxv_feat_registry_length \ 00055 ( sizeof ( gxv_feat_registry ) / \ 00056 sizeof ( GX_Feature_RegistryRec ) ) 00057 00058 00059 static GX_Feature_RegistryRec gxv_feat_registry[] = 00060 { 00061 /* Generated from gxvfgen.c */ 00062 {1, 0, 0, 1}, /* All Typographic Features */ 00063 {1, 0, 0, 8}, /* Ligatures */ 00064 {1, 0, 1, 3}, /* Cursive Connection */ 00065 {1, 0, 1, 6}, /* Letter Case */ 00066 {1, 0, 0, 1}, /* Vertical Substitution */ 00067 {1, 0, 0, 1}, /* Linguistic Rearrangement */ 00068 {1, 0, 1, 2}, /* Number Spacing */ 00069 {1, 1, 0, 0}, /* Apple Reserved 1 */ 00070 {1, 0, 0, 5}, /* Smart Swashes */ 00071 {1, 0, 1, 3}, /* Diacritics */ 00072 {1, 0, 1, 4}, /* Vertical Position */ 00073 {1, 0, 1, 3}, /* Fractions */ 00074 {1, 1, 0, 0}, /* Apple Reserved 2 */ 00075 {1, 0, 0, 1}, /* Overlapping Characters */ 00076 {1, 0, 0, 6}, /* Typographic Extras */ 00077 {1, 0, 0, 5}, /* Mathematical Extras */ 00078 {1, 0, 1, 7}, /* Ornament Sets */ 00079 {1, 0, 1, 1}, /* Character Alternatives */ 00080 {1, 0, 1, 5}, /* Design Complexity */ 00081 {1, 0, 1, 6}, /* Style Options */ 00082 {1, 0, 1, 11}, /* Character Shape */ 00083 {1, 0, 1, 2}, /* Number Case */ 00084 {1, 0, 1, 4}, /* Text Spacing */ 00085 {1, 0, 1, 10}, /* Transliteration */ 00086 {1, 0, 1, 9}, /* Annotation */ 00087 {1, 0, 1, 2}, /* Kana Spacing */ 00088 {1, 0, 1, 2}, /* Ideographic Spacing */ 00089 {0, 0, 0, 0}, /* __EMPTY__ */ 00090 {0, 0, 0, 0}, /* __EMPTY__ */ 00091 {0, 0, 0, 0}, /* __EMPTY__ */ 00092 {0, 0, 0, 0}, /* __EMPTY__ */ 00093 {0, 0, 0, 0}, /* __EMPTY__ */ 00094 {0, 0, 0, 0}, /* __EMPTY__ */ 00095 {0, 0, 0, 0}, /* __EMPTY__ */ 00096 {0, 0, 0, 0}, /* __EMPTY__ */ 00097 {0, 0, 0, 0}, /* __EMPTY__ */ 00098 {0, 0, 0, 0}, /* __EMPTY__ */ 00099 {0, 0, 0, 0}, /* __EMPTY__ */ 00100 {0, 0, 0, 0}, /* __EMPTY__ */ 00101 {0, 0, 0, 0}, /* __EMPTY__ */ 00102 {0, 0, 0, 0}, /* __EMPTY__ */ 00103 {0, 0, 0, 0}, /* __EMPTY__ */ 00104 {0, 0, 0, 0}, /* __EMPTY__ */ 00105 {0, 0, 0, 0}, /* __EMPTY__ */ 00106 {0, 0, 0, 0}, /* __EMPTY__ */ 00107 {0, 0, 0, 0}, /* __EMPTY__ */ 00108 {0, 0, 0, 0}, /* __EMPTY__ */ 00109 {0, 0, 0, 0}, /* __EMPTY__ */ 00110 {0, 0, 0, 0}, /* __EMPTY__ */ 00111 {0, 0, 0, 0}, /* __EMPTY__ */ 00112 {0, 0, 0, 0}, /* __EMPTY__ */ 00113 {0, 0, 0, 0}, /* __EMPTY__ */ 00114 {0, 0, 0, 0}, /* __EMPTY__ */ 00115 {0, 0, 0, 0}, /* __EMPTY__ */ 00116 {0, 0, 0, 0}, /* __EMPTY__ */ 00117 {0, 0, 0, 0}, /* __EMPTY__ */ 00118 {0, 0, 0, 0}, /* __EMPTY__ */ 00119 {0, 0, 0, 0}, /* __EMPTY__ */ 00120 {0, 0, 0, 0}, /* __EMPTY__ */ 00121 {0, 0, 0, 0}, /* __EMPTY__ */ 00122 {0, 0, 0, 0}, /* __EMPTY__ */ 00123 {0, 0, 0, 0}, /* __EMPTY__ */ 00124 {0, 0, 0, 0}, /* __EMPTY__ */ 00125 {0, 0, 0, 0}, /* __EMPTY__ */ 00126 {0, 0, 0, 0}, /* __EMPTY__ */ 00127 {0, 0, 0, 0}, /* __EMPTY__ */ 00128 {0, 0, 0, 0}, /* __EMPTY__ */ 00129 {0, 0, 0, 0}, /* __EMPTY__ */ 00130 {0, 0, 0, 0}, /* __EMPTY__ */ 00131 {0, 0, 0, 0}, /* __EMPTY__ */ 00132 {0, 0, 0, 0}, /* __EMPTY__ */ 00133 {0, 0, 0, 0}, /* __EMPTY__ */ 00134 {0, 0, 0, 0}, /* __EMPTY__ */ 00135 {0, 0, 0, 0}, /* __EMPTY__ */ 00136 {0, 0, 0, 0}, /* __EMPTY__ */ 00137 {0, 0, 0, 0}, /* __EMPTY__ */ 00138 {0, 0, 0, 0}, /* __EMPTY__ */ 00139 {0, 0, 0, 0}, /* __EMPTY__ */ 00140 {0, 0, 0, 0}, /* __EMPTY__ */ 00141 {0, 0, 0, 0}, /* __EMPTY__ */ 00142 {0, 0, 0, 0}, /* __EMPTY__ */ 00143 {0, 0, 0, 0}, /* __EMPTY__ */ 00144 {0, 0, 0, 0}, /* __EMPTY__ */ 00145 {0, 0, 0, 0}, /* __EMPTY__ */ 00146 {0, 0, 0, 0}, /* __EMPTY__ */ 00147 {0, 0, 0, 0}, /* __EMPTY__ */ 00148 {0, 0, 0, 0}, /* __EMPTY__ */ 00149 {0, 0, 0, 0}, /* __EMPTY__ */ 00150 {0, 0, 0, 0}, /* __EMPTY__ */ 00151 {0, 0, 0, 0}, /* __EMPTY__ */ 00152 {0, 0, 0, 0}, /* __EMPTY__ */ 00153 {0, 0, 0, 0}, /* __EMPTY__ */ 00154 {0, 0, 0, 0}, /* __EMPTY__ */ 00155 {0, 0, 0, 0}, /* __EMPTY__ */ 00156 {0, 0, 0, 0}, /* __EMPTY__ */ 00157 {0, 0, 0, 0}, /* __EMPTY__ */ 00158 {0, 0, 0, 0}, /* __EMPTY__ */ 00159 {0, 0, 0, 0}, /* __EMPTY__ */ 00160 {0, 0, 0, 0}, /* __EMPTY__ */ 00161 {0, 0, 0, 0}, /* __EMPTY__ */ 00162 {1, 0, 1, 4}, /* Text Spacing */ 00163 {1, 0, 1, 2}, /* Kana Spacing */ 00164 {1, 0, 1, 2}, /* Ideographic Spacing */ 00165 {1, 0, 1, 4}, /* CJK Roman Spacing */ 00166 }; 00167 00168 00169 #endif /* __GXVFEAT_H__ */ 00170 00171 00172 /* END */