40 #define FT_COMPONENT trace_gxvfeat 51 typedef struct GXV_feat_DataRec_
60 #define GXV_FEAT_DATA( field ) GXV_TABLE_DATA( feat, field ) 82 gxv_feat_registry_validate(
FT_UShort feature,
89 GXV_TRACE((
" (feature = %u)\n", feature ));
93 GXV_TRACE((
"feature number %d is out of range %d\n",
99 if ( gxv_feat_registry[feature].existence == 0 )
101 GXV_TRACE((
"feature number %d is in defined range but doesn't exist\n",
107 if ( gxv_feat_registry[feature].apple_reserved )
110 GXV_TRACE((
"feature number %d is reserved by Apple\n", feature ));
115 if ( nSettings != gxv_feat_registry[feature].nSettings )
117 GXV_TRACE((
"feature %d: nSettings %d != defined nSettings %d\n",
119 gxv_feat_registry[feature].nSettings ));
124 if ( exclusive != gxv_feat_registry[feature].exclusive )
126 GXV_TRACE((
"exclusive flag %d differs from predefined value\n",
151 GXV_TRACE((
" (nameIndex = %d)\n", nameIndex ));
179 if ( exclusive && ( setting & 1 ) == 0 )
182 gxv_feat_name_index_validate( p,
limit, valid );
220 if ( settingTable < reserved_size )
233 dynamic_default = (
FT_Byte)( featureFlags &
239 if ( !( dynamic_default < nSettings ) )
243 gxv_feat_registry_validate( feature, nSettings, exclusive, valid );
245 gxv_feat_name_index_validate( p,
limit, valid );
247 p = valid->
root->base + settingTable;
248 for ( last_setting = -1, i = 0; i < nSettings; i++ )
250 gxv_feat_setting_validate( p,
limit, exclusive, valid );
292 valid->
root = ftvalid;
296 FT_TRACE3((
"validating `feat' table\n" ));
299 feat->reserved_size = 0;
303 feat->reserved_size += 4 + 2 + 2 + 4;
309 GXV_TRACE((
" (featureNameCount = %d)\n", featureNameCount ));
322 feat->reserved_size += featureNameCount * ( 2 + 2 + 4 + 2 + 2 );
324 for ( last_feature = -1,
i = 0;
i < featureNameCount;
i++ )
326 gxv_feat_name_validate(
p,
limit, valid );
332 p += 2 + 2 + 4 + 2 + 2;
#define FT_INVALID_FORMAT
#define GXV_NAME_ENTER(name)
#define gxv_feat_registry_length
gxv_feat_validate(FT_Bytes table, FT_Face face, FT_Validator ftvalid)
FT_BEGIN_HEADER typedef unsigned char FT_Bool
#define GXV_SET_ERR_IF_PARANOID(err)
GLenum GLuint GLint GLenum face
struct GXV_feat_DataRec_ GXV_feat_DataRec
#define FT_TRACE4(varformat)
#define GXV_FEAT_DATA(field)
gxv_sfntName_validate(FT_UShort name_index, FT_UShort min_index, FT_UShort max_index, GXV_Validator valid)
typedefFT_BEGIN_HEADER struct FT_ValidatorRec_ volatile * FT_Validator
#define FT_NEXT_USHORT(buffer)
enum GXV_FeatureFlagsMask_ GXV_FeatureFlagsMask
#define FT_TRACE3(varformat)
#define FT_INVALID_OFFSET
#define IS_PARANOID_VALIDATION
#define FT_NEXT_ULONG(buffer)
#define FT_NEXT_SHORT(buffer)
GLenum GLsizei GLenum GLenum const GLvoid * table
#define GXV_LIMIT_CHECK(_count)
struct GXV_feat_DataRec_ * GXV_feat_Data