20 #include FT_TRUETYPE_TABLES_H 21 #include FT_TRUETYPE_TAGS_H 22 #include FT_OPENTYPE_VALIDATE_H 23 #include FT_INTERNAL_OBJECTS_H 24 #include FT_SERVICE_OPENTYPE_VALIDATE_H 38 #define FT_COMPONENT trace_otvmodule 57 if (
FT_ALLOC( *table, *table_len ) )
83 FT_ULong len_base, len_gdef, len_gpos, len_gsub, len_jstf;
89 base = gdef = gpos = gsub = jstf = math =
NULL;
90 len_base = len_gdef = len_gpos = len_gsub = len_jstf = len_math = 0;
98 FT_TRACE1((
"otv_validate: Invalid glyphs index (0x0000FFFF - 0x%08x) ",
100 FT_TRACE1((
"are not handled by OpenType tables\n" ));
108 error = otv_load_table( face,
TTAG_BASE, &base, &len_base );
115 error = otv_load_table( face,
TTAG_GDEF, &gdef, &len_gdef );
122 error = otv_load_table( face,
TTAG_GPOS, &gpos, &len_gpos );
129 error = otv_load_table( face,
TTAG_GSUB, &gsub, &len_gsub );
136 error = otv_load_table( face,
TTAG_JSTF, &jstf, &len_jstf );
143 error = otv_load_table( face,
TTAG_MATH, &math, &len_math );
153 if (
ft_setjmp( valid.jump_buffer ) == 0 )
163 if (
ft_setjmp( valid.jump_buffer ) == 0 )
173 if (
ft_setjmp( valid.jump_buffer ) == 0 )
183 if (
ft_setjmp( valid.jump_buffer ) == 0 )
193 if (
ft_setjmp( valid.jump_buffer ) == 0 )
203 if (
ft_setjmp( valid.jump_buffer ) == 0 )
241 const FT_Service_OTvalidateRec otvalid_interface =
257 const char* service_id )
#define FT_ALLOC(ptr, size)
ft_service_list_lookup(FT_ServiceDesc service_descriptors, const char *service_id)
FT_CALLBACK_TABLE_DEF const FT_Module_Class otv_module_class
FT_BEGIN_HEADER otv_BASE_validate(FT_Bytes table, FT_Validator valid)
FT_Error(* FT_Module_Constructor)(FT_Module module)
otv_JSTF_validate(FT_Bytes table, FT_Bytes gsub, FT_Bytes gpos, FT_UInt glyph_count, FT_Validator valid)
struct FT_ModuleRec_ FT_ModuleRec
otv_GPOS_validate(FT_Bytes table, FT_UInt glyph_count, FT_Validator valid)
#define FT_TRACE1(varformat)
GLenum GLuint GLint GLenum face
FT_Module_Interface(* FT_Module_Requester)(FT_Module module, const char *name)
otv_GSUB_validate(FT_Bytes table, FT_UInt glyph_count, FT_Validator valid)
FT_Load_Sfnt_Table(FT_Face face, FT_ULong tag, FT_Long offset, FT_Byte *buffer, FT_ULong *length)
otv_GDEF_validate(FT_Bytes table, FT_Bytes gsub, FT_Bytes gpos, FT_UInt glyph_count, FT_Validator valid)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
if(!abbox) return FT_THROW(Invalid_Argument)
#define FT_CALLBACK_TABLE_DEF
#define FT_FACE_MEMORY(x)
otv_MATH_validate(FT_Bytes table, FT_UInt glyph_count, FT_Validator ftvalid)
void(* FT_Module_Destructor)(FT_Module module)
ft_validator_init(FT_Validator valid, const FT_Byte *base, const FT_Byte *limit, FT_ValidationLevel level)
#define FT_SERVICE_ID_OPENTYPE_VALIDATE
GLenum GLsizei GLenum GLenum const GLvoid * table