38 #define FT_COMPONENT trace_gxvmorx
41 typedef struct GXV_morx_subtable_type1_StateOptRec_
45 FT_UShort substitutionTable_num_lookupTables;
51 #define GXV_MORX_SUBTABLE_TYPE1_HEADER_SIZE \
52 ( GXV_STATETABLE_HEADER_SIZE + 2 )
92 o[3] = optdata->substitutionTable;
93 l[0] = classTable_length_p;
94 l[1] = stateArray_length_p;
95 l[2] = entryTable_length_p;
96 l[3] = &(optdata->substitutionTable_length);
111 #ifdef GXV_LOAD_TRACE_VARS
127 #ifdef GXV_LOAD_TRACE_VARS
128 setMark = (
FT_UShort)( ( flags >> 15 ) & 1 );
129 dontAdvance = (
FT_UShort)( ( flags >> 14 ) & 1 );
132 reserved = (
FT_UShort)( flags & 0x3FFF );
134 markIndex = (
FT_Short)( glyphOffset_p->
ul >> 16 );
135 currentIndex = (
FT_Short)( glyphOffset_p->
ul );
137 GXV_TRACE((
" setMark=%01d dontAdvance=%01d\n",
138 setMark, dontAdvance ));
142 GXV_TRACE((
" non-zero bits found in reserved range\n" ));
146 GXV_TRACE((
"markIndex = %d, currentIndex = %d\n",
147 markIndex, currentIndex ));
149 if ( optdata->substitutionTable_num_lookupTables < markIndex + 1 )
150 optdata->substitutionTable_num_lookupTables =
153 if ( optdata->substitutionTable_num_lookupTables < currentIndex + 1 )
154 optdata->substitutionTable_num_lookupTables =
166 GXV_TRACE((
"morx subtable type1 subst.: %d -> %d\n", glyph, value_p->
u ));
190 limit = lookuptbl_limit;
219 for ( i = 0; i < optdata->substitutionTable_num_lookupTables; i++ )
249 GXV_NAME_ENTER(
"morx chain subtable type1 (Contextual Glyph Subst)" );
253 st_rec.substitutionTable_num_lookupTables = 0;
255 valid->xstatetable.optdata =
257 valid->xstatetable.optdata_load_func =
259 valid->xstatetable.subtable_setup_func =
261 valid->xstatetable.entry_glyphoffset_fmt =
263 valid->xstatetable.entry_validate_func =
269 table + st_rec.substitutionTable,
270 table + st_rec.substitutionTable + st_rec.substitutionTable_length,
GLenum GLsizei GLenum GLenum const GLvoid * table
#define GXV_NAME_ENTER(name)
gxv_XStateTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
#define GXV_SET_ERR_IF_PARANOID(err)
static void gxv_morx_subtable_type1_entry_validate(FT_UShort state, FT_UShort flags, GXV_StateTable_GlyphOffsetCPtr glyphOffset_p, FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
static void gxv_morx_subtable_type1_substitutionTable_load(FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
gxv_morx_subtable_type1_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
struct GXV_morx_subtable_type1_StateOptRec_ GXV_morx_subtable_type1_StateOptRec
GXV_XStateTable_ValidatorRec xstatetable
gxv_LookupTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
struct GXV_morx_subtable_type1_StateOptRec_ * GXV_morx_subtable_type1_StateOptRecData
static void gxv_morx_subtable_type1_LookupValue_validate(FT_UShort glyph, GXV_LookupValueCPtr value_p, GXV_Validator valid)
#define FT_NEXT_USHORT(buffer)
EGLSurface EGLint void ** value
static GXV_LookupValueDesc gxv_morx_subtable_type1_LookupFmt4_transit(FT_UShort relative_gindex, GXV_LookupValueCPtr base_value_p, FT_Bytes lookuptbl_limit, GXV_Validator valid)
static void gxv_morx_subtable_type1_subtable_setup(FT_ULong table_size, FT_ULong classTable, FT_ULong stateArray, FT_ULong entryTable, FT_ULong *classTable_length_p, FT_ULong *stateArray_length_p, FT_ULong *entryTable_length_p, GXV_Validator valid)
GLenum GLsizei GLsizei GLsizei GLsizei GLbitfield flags
#define GXV_MORX_SUBTABLE_TYPE1_HEADER_SIZE
#define FT_NEXT_ULONG(buffer)
GXV_Lookup_Fmt4_Transit_Func lookupfmt4_trans
#define FT_INVALID_GLYPH_ID
GXV_Lookup_Value_Validate_Func lookupval_func
GXV_LookupValue_SignSpec lookupval_sign
gxv_set_length_by_ulong_offset(FT_ULong *offset, FT_ULong **length, FT_ULong *buff, FT_UInt nmemb, FT_ULong limit, GXV_Validator valid)
#define GXV_LIMIT_CHECK(_count)
static void gxv_morx_subtable_type1_substitutionTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator valid)