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 ) 56 gxv_morx_subtable_type1_substitutionTable_load(
FT_Bytes table,
72 gxv_morx_subtable_type1_subtable_setup(
FT_ULong table_size,
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);
103 gxv_morx_subtable_type1_entry_validate(
111 #ifdef GXV_LOAD_TRACE_VARS 127 #ifdef GXV_LOAD_TRACE_VARS 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 =
160 gxv_morx_subtable_type1_LookupValue_validate(
FT_UShort glyph,
166 GXV_TRACE((
"morx subtable type1 subst.: %d -> %d\n", glyph, value_p->
u ));
174 gxv_morx_subtable_type1_LookupFmt4_transit(
190 limit = lookuptbl_limit;
203 gxv_morx_subtable_type1_substitutionTable_validate(
FT_Bytes table,
216 valid->
lookupval_func = gxv_morx_subtable_type1_LookupValue_validate;
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;
258 gxv_morx_subtable_type1_substitutionTable_load;
260 gxv_morx_subtable_type1_subtable_setup;
264 gxv_morx_subtable_type1_entry_validate;
268 gxv_morx_subtable_type1_substitutionTable_validate(
269 table + st_rec.substitutionTable,
270 table + st_rec.substitutionTable + st_rec.substitutionTable_length,
for(n=1;n< outline->n_points;n++)
#define GXV_NAME_ENTER(name)
gxv_XStateTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
#define GXV_SET_ERR_IF_PARANOID(err)
GXV_XStateTable_Entry_Validate_Func entry_validate_func
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
int entry_glyphoffset_fmt
GXV_XStateTable_Subtable_Setup_Func subtable_setup_func
GXV_XStateTable_ValidatorRec xstatetable
GLsizei const GLfloat * value
gxv_LookupTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator valid)
struct GXV_morx_subtable_type1_StateOptRec_ * GXV_morx_subtable_type1_StateOptRecData
#define FT_NEXT_USHORT(buffer)
GXV_XStateTable_OptData_Load_Func optdata_load_func
#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
GLenum GLsizei GLenum GLenum const GLvoid * table
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)