forked from minhngoc25a/freetype2
[sfnt] More formatting.
This commit is contained in:
parent
665c65bf86
commit
6edaef3b14
|
@ -4,7 +4,7 @@
|
|||
/* */
|
||||
/* High-level SFNT driver interface (body). */
|
||||
/* */
|
||||
/* Copyright 1996-2007, 2009-2011 by */
|
||||
/* Copyright 1996-2007, 2009-2012 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -50,6 +50,7 @@
|
|||
#include FT_SERVICE_SFNT_H
|
||||
#include FT_SERVICE_TT_CMAP_H
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* The macro FT_COMPONENT is used in trace mode. It is an implicit */
|
||||
|
@ -60,10 +61,10 @@
|
|||
#define FT_COMPONENT trace_sfdriver
|
||||
|
||||
|
||||
/*
|
||||
* SFNT TABLE SERVICE
|
||||
*
|
||||
*/
|
||||
/*
|
||||
* SFNT TABLE SERVICE
|
||||
*
|
||||
*/
|
||||
|
||||
static void*
|
||||
get_sfnt_table( TT_Face face,
|
||||
|
@ -136,19 +137,19 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_SERVICE_SFNT_TABLEREC(sfnt_service_sfnt_table,
|
||||
FT_DEFINE_SERVICE_SFNT_TABLEREC(
|
||||
sfnt_service_sfnt_table,
|
||||
(FT_SFNT_TableLoadFunc)tt_face_load_any,
|
||||
(FT_SFNT_TableGetFunc) get_sfnt_table,
|
||||
(FT_SFNT_TableInfoFunc)sfnt_table_info
|
||||
)
|
||||
(FT_SFNT_TableInfoFunc)sfnt_table_info )
|
||||
|
||||
|
||||
#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
|
||||
|
||||
/*
|
||||
* GLYPH DICT SERVICE
|
||||
*
|
||||
*/
|
||||
/*
|
||||
* GLYPH DICT SERVICE
|
||||
*
|
||||
*/
|
||||
|
||||
static FT_Error
|
||||
sfnt_get_glyph_name( TT_Face face,
|
||||
|
@ -172,17 +173,18 @@
|
|||
sfnt_get_name_index( TT_Face face,
|
||||
FT_String* glyph_name )
|
||||
{
|
||||
FT_Face root = &face->root;
|
||||
FT_UInt i, max_gid = FT_UINT_MAX;
|
||||
FT_Face root = &face->root;
|
||||
|
||||
FT_UInt i, max_gid = FT_UINT_MAX;
|
||||
|
||||
|
||||
if ( root->num_glyphs < 0 )
|
||||
return 0;
|
||||
else if ( ( FT_ULong ) root->num_glyphs < FT_UINT_MAX )
|
||||
max_gid = ( FT_UInt ) root->num_glyphs;
|
||||
else if ( (FT_ULong)root->num_glyphs < FT_UINT_MAX )
|
||||
max_gid = (FT_UInt)root->num_glyphs;
|
||||
else
|
||||
FT_TRACE0(( "Ignore glyph names for invalid GID 0x%08x - 0x%08x\n",
|
||||
FT_UINT_MAX, root->num_glyphs ));
|
||||
FT_UINT_MAX, root->num_glyphs ));
|
||||
|
||||
for ( i = 0; i < max_gid; i++ )
|
||||
{
|
||||
|
@ -201,18 +203,19 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_SERVICE_GLYPHDICTREC(sfnt_service_glyph_dict,
|
||||
FT_DEFINE_SERVICE_GLYPHDICTREC(
|
||||
sfnt_service_glyph_dict,
|
||||
(FT_GlyphDict_GetNameFunc) sfnt_get_glyph_name,
|
||||
(FT_GlyphDict_NameIndexFunc)sfnt_get_name_index
|
||||
)
|
||||
(FT_GlyphDict_NameIndexFunc)sfnt_get_name_index )
|
||||
|
||||
|
||||
#endif /* TT_CONFIG_OPTION_POSTSCRIPT_NAMES */
|
||||
|
||||
|
||||
/*
|
||||
* POSTSCRIPT NAME SERVICE
|
||||
*
|
||||
*/
|
||||
/*
|
||||
* POSTSCRIPT NAME SERVICE
|
||||
*
|
||||
*/
|
||||
|
||||
static const char*
|
||||
sfnt_get_ps_name( TT_Face face )
|
||||
|
@ -324,17 +327,18 @@
|
|||
return result;
|
||||
}
|
||||
|
||||
FT_DEFINE_SERVICE_PSFONTNAMEREC(sfnt_service_ps_name,
|
||||
(FT_PsName_GetFunc)sfnt_get_ps_name
|
||||
)
|
||||
|
||||
FT_DEFINE_SERVICE_PSFONTNAMEREC(
|
||||
sfnt_service_ps_name,
|
||||
(FT_PsName_GetFunc)sfnt_get_ps_name )
|
||||
|
||||
|
||||
/*
|
||||
* TT CMAP INFO
|
||||
*/
|
||||
FT_DEFINE_SERVICE_TTCMAPSREC(tt_service_get_cmap_info,
|
||||
(TT_CMap_Info_GetFunc)tt_get_cmap_info
|
||||
)
|
||||
FT_DEFINE_SERVICE_TTCMAPSREC(
|
||||
tt_service_get_cmap_info,
|
||||
(TT_CMap_Info_GetFunc)tt_get_cmap_info )
|
||||
|
||||
|
||||
#ifdef TT_CONFIG_OPTION_BDF
|
||||
|
@ -375,10 +379,11 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_SERVICE_BDFRec(sfnt_service_bdf,
|
||||
(FT_BDF_GetCharsetIdFunc) sfnt_get_charset_id,
|
||||
(FT_BDF_GetPropertyFunc) tt_face_find_bdf_prop
|
||||
)
|
||||
FT_DEFINE_SERVICE_BDFRec(
|
||||
sfnt_service_bdf,
|
||||
(FT_BDF_GetCharsetIdFunc)sfnt_get_charset_id,
|
||||
(FT_BDF_GetPropertyFunc) tt_face_find_bdf_prop )
|
||||
|
||||
|
||||
#endif /* TT_CONFIG_OPTION_BDF */
|
||||
|
||||
|
@ -388,33 +393,33 @@
|
|||
*/
|
||||
|
||||
#if defined TT_CONFIG_OPTION_POSTSCRIPT_NAMES && defined TT_CONFIG_OPTION_BDF
|
||||
FT_DEFINE_SERVICEDESCREC5(sfnt_services,
|
||||
FT_DEFINE_SERVICEDESCREC5(
|
||||
sfnt_services,
|
||||
FT_SERVICE_ID_SFNT_TABLE, &FT_SFNT_SERVICE_SFNT_TABLE_GET,
|
||||
FT_SERVICE_ID_POSTSCRIPT_FONT_NAME, &FT_SFNT_SERVICE_PS_NAME_GET,
|
||||
FT_SERVICE_ID_GLYPH_DICT, &FT_SFNT_SERVICE_GLYPH_DICT_GET,
|
||||
FT_SERVICE_ID_BDF, &FT_SFNT_SERVICE_BDF_GET,
|
||||
FT_SERVICE_ID_TT_CMAP, &FT_TT_SERVICE_GET_CMAP_INFO_GET
|
||||
)
|
||||
FT_SERVICE_ID_TT_CMAP, &FT_TT_SERVICE_GET_CMAP_INFO_GET )
|
||||
#elif defined TT_CONFIG_OPTION_POSTSCRIPT_NAMES
|
||||
FT_DEFINE_SERVICEDESCREC4(sfnt_services,
|
||||
FT_DEFINE_SERVICEDESCREC4(
|
||||
sfnt_services,
|
||||
FT_SERVICE_ID_SFNT_TABLE, &FT_SFNT_SERVICE_SFNT_TABLE_GET,
|
||||
FT_SERVICE_ID_POSTSCRIPT_FONT_NAME, &FT_SFNT_SERVICE_PS_NAME_GET,
|
||||
FT_SERVICE_ID_GLYPH_DICT, &FT_SFNT_SERVICE_GLYPH_DICT_GET,
|
||||
FT_SERVICE_ID_TT_CMAP, &FT_TT_SERVICE_GET_CMAP_INFO_GET
|
||||
)
|
||||
FT_SERVICE_ID_TT_CMAP, &FT_TT_SERVICE_GET_CMAP_INFO_GET )
|
||||
#elif defined TT_CONFIG_OPTION_BDF
|
||||
FT_DEFINE_SERVICEDESCREC4(sfnt_services,
|
||||
FT_DEFINE_SERVICEDESCREC4(
|
||||
sfnt_services,
|
||||
FT_SERVICE_ID_SFNT_TABLE, &FT_SFNT_SERVICE_SFNT_TABLE_GET,
|
||||
FT_SERVICE_ID_POSTSCRIPT_FONT_NAME, &FT_SFNT_SERVICE_PS_NAME_GET,
|
||||
FT_SERVICE_ID_BDF, &FT_SFNT_SERVICE_BDF_GET,
|
||||
FT_SERVICE_ID_TT_CMAP, &FT_TT_SERVICE_GET_CMAP_INFO_GET
|
||||
)
|
||||
FT_SERVICE_ID_TT_CMAP, &FT_TT_SERVICE_GET_CMAP_INFO_GET )
|
||||
#else
|
||||
FT_DEFINE_SERVICEDESCREC3(sfnt_services,
|
||||
FT_DEFINE_SERVICEDESCREC3(
|
||||
sfnt_services,
|
||||
FT_SERVICE_ID_SFNT_TABLE, &FT_SFNT_SERVICE_SFNT_TABLE_GET,
|
||||
FT_SERVICE_ID_POSTSCRIPT_FONT_NAME, &FT_SFNT_SERVICE_PS_NAME_GET,
|
||||
FT_SERVICE_ID_TT_CMAP, &FT_TT_SERVICE_GET_CMAP_INFO_GET
|
||||
)
|
||||
FT_SERVICE_ID_TT_CMAP, &FT_TT_SERVICE_GET_CMAP_INFO_GET )
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -435,6 +440,7 @@
|
|||
#else
|
||||
FT_UNUSED( module );
|
||||
#endif
|
||||
|
||||
return ft_service_list_lookup( FT_SFNT_SERVICES_GET, module_interface );
|
||||
}
|
||||
|
||||
|
@ -566,18 +572,21 @@
|
|||
|
||||
#endif /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
|
||||
|
||||
#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
|
||||
#define PUT_EMBEDDED_BITMAPS(a) a
|
||||
#define PUT_EMBEDDED_BITMAPS( a ) a
|
||||
#else
|
||||
#define PUT_EMBEDDED_BITMAPS(a) 0
|
||||
#endif
|
||||
#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
|
||||
#define PUT_PS_NAMES(a) a
|
||||
#else
|
||||
#define PUT_PS_NAMES(a) 0
|
||||
#define PUT_EMBEDDED_BITMAPS( a ) NULL
|
||||
#endif
|
||||
|
||||
FT_DEFINE_SFNT_INTERFACE(sfnt_interface,
|
||||
#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
|
||||
#define PUT_PS_NAMES( a ) a
|
||||
#else
|
||||
#define PUT_PS_NAMES( a ) NULL
|
||||
#endif
|
||||
|
||||
FT_DEFINE_SFNT_INTERFACE(
|
||||
sfnt_interface,
|
||||
tt_face_goto_table,
|
||||
|
||||
sfnt_init_face,
|
||||
|
@ -588,7 +597,7 @@
|
|||
tt_face_load_any,
|
||||
|
||||
tt_face_load_sfnt_header_stub, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
tt_face_load_directory_stub, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
tt_face_load_directory_stub, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
|
||||
tt_face_load_head,
|
||||
tt_face_load_hhea,
|
||||
|
@ -608,21 +617,21 @@
|
|||
tt_face_load_pclt,
|
||||
|
||||
/* see `ttload.h' */
|
||||
PUT_EMBEDDED_BITMAPS(tt_face_load_bhed),
|
||||
PUT_EMBEDDED_BITMAPS( tt_face_load_bhed ),
|
||||
|
||||
tt_face_set_sbit_strike_stub, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
tt_face_load_sbit_stub, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
tt_face_load_sbit_stub, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
|
||||
tt_find_sbit_image, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
tt_find_sbit_image, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
tt_load_sbit_metrics, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
|
||||
PUT_EMBEDDED_BITMAPS(tt_face_load_sbit_image),
|
||||
PUT_EMBEDDED_BITMAPS( tt_face_load_sbit_image ),
|
||||
|
||||
tt_face_free_sbit_stub, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
|
||||
/* see `ttpost.h' */
|
||||
PUT_PS_NAMES(tt_face_get_ps_name),
|
||||
PUT_PS_NAMES(tt_face_free_ps_names),
|
||||
PUT_PS_NAMES( tt_face_get_ps_name ),
|
||||
PUT_PS_NAMES( tt_face_free_ps_names ),
|
||||
|
||||
tt_face_load_charmap_stub, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
tt_face_free_charmap_stub, /* FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||
|
@ -637,17 +646,18 @@
|
|||
tt_face_load_hmtx,
|
||||
|
||||
/* see `ttsbit.h' and `sfnt.h' */
|
||||
PUT_EMBEDDED_BITMAPS(tt_face_load_eblc),
|
||||
PUT_EMBEDDED_BITMAPS(tt_face_free_eblc),
|
||||
PUT_EMBEDDED_BITMAPS( tt_face_load_eblc ),
|
||||
PUT_EMBEDDED_BITMAPS( tt_face_free_eblc ),
|
||||
|
||||
PUT_EMBEDDED_BITMAPS(tt_face_set_sbit_strike),
|
||||
PUT_EMBEDDED_BITMAPS(tt_face_load_strike_metrics),
|
||||
PUT_EMBEDDED_BITMAPS( tt_face_set_sbit_strike ),
|
||||
PUT_EMBEDDED_BITMAPS( tt_face_load_strike_metrics ),
|
||||
|
||||
tt_face_get_metrics
|
||||
)
|
||||
|
||||
|
||||
FT_DEFINE_MODULE(sfnt_module_class,
|
||||
FT_DEFINE_MODULE(
|
||||
sfnt_module_class,
|
||||
|
||||
0, /* not a font driver or renderer */
|
||||
sizeof ( FT_ModuleRec ),
|
||||
|
@ -660,8 +670,7 @@
|
|||
|
||||
(FT_Module_Constructor)0,
|
||||
(FT_Module_Destructor) 0,
|
||||
(FT_Module_Requester) sfnt_get_interface
|
||||
)
|
||||
(FT_Module_Requester) sfnt_get_interface )
|
||||
|
||||
|
||||
/* END */
|
||||
|
|
|
@ -165,20 +165,24 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_TT_CMAP(tt_cmap0_class_rec,
|
||||
sizeof ( TT_CMapRec ),
|
||||
FT_DEFINE_TT_CMAP(
|
||||
tt_cmap0_class_rec,
|
||||
sizeof ( TT_CMapRec ),
|
||||
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap0_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap0_char_next,
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap0_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap0_char_next,
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
|
||||
NULL, NULL, NULL, NULL, NULL
|
||||
,
|
||||
0,
|
||||
(TT_CMap_ValidateFunc) tt_cmap0_validate,
|
||||
(TT_CMap_Info_GetFunc) tt_cmap0_get_info
|
||||
)
|
||||
(TT_CMap_ValidateFunc)tt_cmap0_validate,
|
||||
(TT_CMap_Info_GetFunc)tt_cmap0_get_info )
|
||||
|
||||
#endif /* TT_CONFIG_CMAP_FORMAT_0 */
|
||||
|
||||
|
@ -541,20 +545,24 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_TT_CMAP(tt_cmap2_class_rec,
|
||||
sizeof ( TT_CMapRec ),
|
||||
FT_DEFINE_TT_CMAP(
|
||||
tt_cmap2_class_rec,
|
||||
sizeof ( TT_CMapRec ),
|
||||
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap2_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap2_char_next,
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap2_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap2_char_next,
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
|
||||
NULL, NULL, NULL, NULL, NULL
|
||||
,
|
||||
2,
|
||||
(TT_CMap_ValidateFunc) tt_cmap2_validate,
|
||||
(TT_CMap_Info_GetFunc) tt_cmap2_get_info
|
||||
)
|
||||
(TT_CMap_ValidateFunc)tt_cmap2_validate,
|
||||
(TT_CMap_Info_GetFunc)tt_cmap2_get_info )
|
||||
|
||||
#endif /* TT_CONFIG_CMAP_FORMAT_2 */
|
||||
|
||||
|
@ -1377,19 +1385,23 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_TT_CMAP(tt_cmap4_class_rec,
|
||||
sizeof ( TT_CMap4Rec ),
|
||||
(FT_CMap_InitFunc) tt_cmap4_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap4_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap4_char_next,
|
||||
FT_DEFINE_TT_CMAP(
|
||||
tt_cmap4_class_rec,
|
||||
sizeof ( TT_CMap4Rec ),
|
||||
(FT_CMap_InitFunc) tt_cmap4_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap4_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap4_char_next,
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
|
||||
NULL, NULL, NULL, NULL, NULL
|
||||
,
|
||||
4,
|
||||
(TT_CMap_ValidateFunc) tt_cmap4_validate,
|
||||
(TT_CMap_Info_GetFunc) tt_cmap4_get_info
|
||||
)
|
||||
(TT_CMap_ValidateFunc)tt_cmap4_validate,
|
||||
(TT_CMap_Info_GetFunc)tt_cmap4_get_info )
|
||||
|
||||
#endif /* TT_CONFIG_CMAP_FORMAT_4 */
|
||||
|
||||
|
@ -1536,20 +1548,24 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_TT_CMAP(tt_cmap6_class_rec,
|
||||
sizeof ( TT_CMapRec ),
|
||||
FT_DEFINE_TT_CMAP(
|
||||
tt_cmap6_class_rec,
|
||||
sizeof ( TT_CMapRec ),
|
||||
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap6_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap6_char_next,
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap6_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap6_char_next,
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
|
||||
NULL, NULL, NULL, NULL, NULL
|
||||
,
|
||||
6,
|
||||
(TT_CMap_ValidateFunc) tt_cmap6_validate,
|
||||
(TT_CMap_Info_GetFunc) tt_cmap6_get_info
|
||||
)
|
||||
(TT_CMap_ValidateFunc)tt_cmap6_validate,
|
||||
(TT_CMap_Info_GetFunc)tt_cmap6_get_info )
|
||||
|
||||
#endif /* TT_CONFIG_CMAP_FORMAT_6 */
|
||||
|
||||
|
@ -1789,20 +1805,24 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_TT_CMAP(tt_cmap8_class_rec,
|
||||
sizeof ( TT_CMapRec ),
|
||||
FT_DEFINE_TT_CMAP(
|
||||
tt_cmap8_class_rec,
|
||||
sizeof ( TT_CMapRec ),
|
||||
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap8_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap8_char_next,
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap8_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap8_char_next,
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
|
||||
NULL, NULL, NULL, NULL, NULL
|
||||
,
|
||||
8,
|
||||
(TT_CMap_ValidateFunc) tt_cmap8_validate,
|
||||
(TT_CMap_Info_GetFunc) tt_cmap8_get_info
|
||||
)
|
||||
(TT_CMap_ValidateFunc)tt_cmap8_validate,
|
||||
(TT_CMap_Info_GetFunc)tt_cmap8_get_info )
|
||||
|
||||
#endif /* TT_CONFIG_CMAP_FORMAT_8 */
|
||||
|
||||
|
@ -1938,20 +1958,24 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_TT_CMAP(tt_cmap10_class_rec,
|
||||
sizeof ( TT_CMapRec ),
|
||||
FT_DEFINE_TT_CMAP(
|
||||
tt_cmap10_class_rec,
|
||||
sizeof ( TT_CMapRec ),
|
||||
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap10_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap10_char_next,
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap10_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap10_char_next,
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
|
||||
NULL, NULL, NULL, NULL, NULL
|
||||
,
|
||||
10,
|
||||
(TT_CMap_ValidateFunc) tt_cmap10_validate,
|
||||
(TT_CMap_Info_GetFunc) tt_cmap10_get_info
|
||||
)
|
||||
(TT_CMap_ValidateFunc)tt_cmap10_validate,
|
||||
(TT_CMap_Info_GetFunc)tt_cmap10_get_info )
|
||||
|
||||
#endif /* TT_CONFIG_CMAP_FORMAT_10 */
|
||||
|
||||
|
@ -2258,20 +2282,24 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_TT_CMAP(tt_cmap12_class_rec,
|
||||
sizeof ( TT_CMap12Rec ),
|
||||
FT_DEFINE_TT_CMAP(
|
||||
tt_cmap12_class_rec,
|
||||
sizeof ( TT_CMap12Rec ),
|
||||
|
||||
(FT_CMap_InitFunc) tt_cmap12_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap12_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap12_char_next,
|
||||
(FT_CMap_InitFunc) tt_cmap12_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap12_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap12_char_next,
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
|
||||
NULL, NULL, NULL, NULL, NULL
|
||||
,
|
||||
12,
|
||||
(TT_CMap_ValidateFunc) tt_cmap12_validate,
|
||||
(TT_CMap_Info_GetFunc) tt_cmap12_get_info
|
||||
)
|
||||
(TT_CMap_ValidateFunc)tt_cmap12_validate,
|
||||
(TT_CMap_Info_GetFunc)tt_cmap12_get_info )
|
||||
|
||||
#endif /* TT_CONFIG_CMAP_FORMAT_12 */
|
||||
|
||||
|
@ -2338,9 +2366,9 @@
|
|||
tt_cmap13_validate( FT_Byte* table,
|
||||
FT_Validator valid )
|
||||
{
|
||||
FT_Byte* p;
|
||||
FT_ULong length;
|
||||
FT_ULong num_groups;
|
||||
FT_Byte* p;
|
||||
FT_ULong length;
|
||||
FT_ULong num_groups;
|
||||
|
||||
|
||||
if ( table + 16 > valid->limit )
|
||||
|
@ -2490,7 +2518,6 @@
|
|||
|
||||
/* if `char_code' is not in any group, then `mid' is */
|
||||
/* the group nearest to `char_code' */
|
||||
/* */
|
||||
|
||||
if ( char_code > end )
|
||||
{
|
||||
|
@ -2574,20 +2601,24 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_TT_CMAP(tt_cmap13_class_rec,
|
||||
sizeof ( TT_CMap13Rec ),
|
||||
FT_DEFINE_TT_CMAP(
|
||||
tt_cmap13_class_rec,
|
||||
sizeof ( TT_CMap13Rec ),
|
||||
|
||||
(FT_CMap_InitFunc) tt_cmap13_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap13_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap13_char_next,
|
||||
(FT_CMap_InitFunc) tt_cmap13_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap13_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap13_char_next,
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
|
||||
NULL, NULL, NULL, NULL, NULL
|
||||
,
|
||||
13,
|
||||
(TT_CMap_ValidateFunc) tt_cmap13_validate,
|
||||
(TT_CMap_Info_GetFunc) tt_cmap13_get_info
|
||||
)
|
||||
(TT_CMap_ValidateFunc)tt_cmap13_validate,
|
||||
(TT_CMap_Info_GetFunc)tt_cmap13_get_info )
|
||||
|
||||
#endif /* TT_CONFIG_CMAP_FORMAT_13 */
|
||||
|
||||
|
@ -2688,8 +2719,8 @@
|
|||
FT_UInt32 num_results,
|
||||
FT_Memory memory )
|
||||
{
|
||||
FT_UInt32 old_max = cmap->max_results;
|
||||
FT_Error error = SFNT_Err_Ok;
|
||||
FT_UInt32 old_max = cmap->max_results;
|
||||
FT_Error error = SFNT_Err_Ok;
|
||||
|
||||
|
||||
if ( num_results > cmap->max_results )
|
||||
|
@ -2713,9 +2744,9 @@
|
|||
cmap->cmap.data = table;
|
||||
|
||||
table += 6;
|
||||
cmap->num_selectors = FT_PEEK_ULONG( table );
|
||||
cmap->max_results = 0;
|
||||
cmap->results = NULL;
|
||||
cmap->num_selectors = FT_PEEK_ULONG( table );
|
||||
cmap->max_results = 0;
|
||||
cmap->results = NULL;
|
||||
|
||||
return SFNT_Err_Ok;
|
||||
}
|
||||
|
@ -2791,7 +2822,7 @@
|
|||
{
|
||||
FT_Byte* ndp = table + nondefOff;
|
||||
FT_ULong numMappings = TT_NEXT_ULONG( ndp );
|
||||
FT_ULong i, lastUni = 0;
|
||||
FT_ULong i, lastUni = 0;
|
||||
|
||||
|
||||
if ( numMappings * 4 > (FT_ULong)( valid->limit - ndp ) )
|
||||
|
@ -2965,7 +2996,7 @@
|
|||
tt_cmap14_char_var_index( TT_CMap cmap,
|
||||
TT_CMap ucmap,
|
||||
FT_UInt32 charcode,
|
||||
FT_UInt32 variantSelector)
|
||||
FT_UInt32 variantSelector )
|
||||
{
|
||||
FT_Byte* p = tt_cmap14_find_variant( cmap->data + 6, variantSelector );
|
||||
FT_ULong defOff;
|
||||
|
@ -3106,9 +3137,9 @@
|
|||
|
||||
|
||||
static FT_UInt32*
|
||||
tt_cmap14_get_def_chars( TT_CMap cmap,
|
||||
FT_Byte* p,
|
||||
FT_Memory memory )
|
||||
tt_cmap14_get_def_chars( TT_CMap cmap,
|
||||
FT_Byte* p,
|
||||
FT_Memory memory )
|
||||
{
|
||||
TT_CMap14 cmap14 = (TT_CMap14) cmap;
|
||||
FT_UInt32 numRanges;
|
||||
|
@ -3124,7 +3155,7 @@
|
|||
|
||||
for ( q = cmap14->results; numRanges > 0; --numRanges )
|
||||
{
|
||||
FT_UInt32 uni = (FT_UInt32)TT_NEXT_UINT24( p );
|
||||
FT_UInt32 uni = (FT_UInt32)TT_NEXT_UINT24( p );
|
||||
|
||||
|
||||
cnt = FT_NEXT_BYTE( p ) + 1;
|
||||
|
@ -3133,6 +3164,7 @@
|
|||
q[0] = uni;
|
||||
uni += 1;
|
||||
q += 1;
|
||||
|
||||
} while ( --cnt != 0 );
|
||||
}
|
||||
q[0] = 0;
|
||||
|
@ -3306,25 +3338,25 @@
|
|||
}
|
||||
|
||||
|
||||
FT_DEFINE_TT_CMAP(tt_cmap14_class_rec,
|
||||
sizeof ( TT_CMap14Rec ),
|
||||
FT_DEFINE_TT_CMAP(
|
||||
tt_cmap14_class_rec,
|
||||
sizeof ( TT_CMap14Rec ),
|
||||
|
||||
(FT_CMap_InitFunc) tt_cmap14_init,
|
||||
(FT_CMap_DoneFunc) tt_cmap14_done,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap14_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap14_char_next,
|
||||
(FT_CMap_InitFunc) tt_cmap14_init,
|
||||
(FT_CMap_DoneFunc) tt_cmap14_done,
|
||||
(FT_CMap_CharIndexFunc)tt_cmap14_char_index,
|
||||
(FT_CMap_CharNextFunc) tt_cmap14_char_next,
|
||||
|
||||
/* Format 14 extension functions */
|
||||
(FT_CMap_CharVarIndexFunc) tt_cmap14_char_var_index,
|
||||
(FT_CMap_CharVarIsDefaultFunc)tt_cmap14_char_var_isdefault,
|
||||
(FT_CMap_VariantListFunc) tt_cmap14_variants,
|
||||
(FT_CMap_CharVariantListFunc) tt_cmap14_char_variants,
|
||||
(FT_CMap_VariantCharListFunc) tt_cmap14_variant_chars,
|
||||
|
||||
/* Format 14 extension functions */
|
||||
(FT_CMap_CharVarIndexFunc) tt_cmap14_char_var_index,
|
||||
(FT_CMap_CharVarIsDefaultFunc)tt_cmap14_char_var_isdefault,
|
||||
(FT_CMap_VariantListFunc) tt_cmap14_variants,
|
||||
(FT_CMap_CharVariantListFunc) tt_cmap14_char_variants,
|
||||
(FT_CMap_VariantCharListFunc) tt_cmap14_variant_chars
|
||||
,
|
||||
14,
|
||||
(TT_CMap_ValidateFunc)tt_cmap14_validate,
|
||||
(TT_CMap_Info_GetFunc)tt_cmap14_get_info
|
||||
)
|
||||
(TT_CMap_Info_GetFunc)tt_cmap14_get_info )
|
||||
|
||||
#endif /* TT_CONFIG_CMAP_FORMAT_14 */
|
||||
|
||||
|
@ -3333,43 +3365,55 @@
|
|||
|
||||
static const TT_CMap_Class tt_cmap_classes[] =
|
||||
{
|
||||
#define TTCMAPCITEM(a) &a,
|
||||
#define TTCMAPCITEM( a ) &a,
|
||||
#include "ttcmapc.h"
|
||||
NULL,
|
||||
};
|
||||
|
||||
#else /*FT_CONFIG_OPTION_PIC*/
|
||||
|
||||
void FT_Destroy_Class_tt_cmap_classes(FT_Library library, TT_CMap_Class* clazz)
|
||||
void
|
||||
FT_Destroy_Class_tt_cmap_classes( FT_Library library,
|
||||
TT_CMap_Class* clazz )
|
||||
{
|
||||
FT_Memory memory = library->memory;
|
||||
FT_Memory memory = library->memory;
|
||||
|
||||
|
||||
if ( clazz )
|
||||
FT_FREE( clazz );
|
||||
}
|
||||
|
||||
FT_Error FT_Create_Class_tt_cmap_classes(FT_Library library, TT_CMap_Class** output_class)
|
||||
{
|
||||
TT_CMap_Class* clazz;
|
||||
TT_CMap_ClassRec* recs;
|
||||
FT_Error error;
|
||||
FT_Memory memory = library->memory;
|
||||
int i = 0;
|
||||
|
||||
#define TTCMAPCITEM(a) i++;
|
||||
FT_Error
|
||||
FT_Create_Class_tt_cmap_classes( FT_Library library,
|
||||
TT_CMap_Class** output_class )
|
||||
{
|
||||
TT_CMap_Class* clazz;
|
||||
TT_CMap_ClassRec* recs;
|
||||
FT_Error error;
|
||||
FT_Memory memory = library->memory;
|
||||
|
||||
int i = 0;
|
||||
|
||||
|
||||
#define TTCMAPCITEM( a ) i++;
|
||||
#include "ttcmapc.h"
|
||||
|
||||
/* allocate enough space for both the pointers +terminator and the class instances */
|
||||
if ( FT_ALLOC( clazz, sizeof(*clazz)*(i+1)+sizeof(TT_CMap_ClassRec)*i ) )
|
||||
/* allocate enough space for both the pointers */
|
||||
/* plus terminator and the class instances */
|
||||
if ( FT_ALLOC( clazz, sizeof ( *clazz ) * ( i + 1 ) +
|
||||
sizeof ( TT_CMap_ClassRec ) * i ) )
|
||||
return error;
|
||||
|
||||
/* the location of the class instances follows the array of pointers */
|
||||
recs = (TT_CMap_ClassRec*) (((char*)clazz)+(sizeof(*clazz)*(i+1)));
|
||||
i=0;
|
||||
recs = (TT_CMap_ClassRec*)( (char*)clazz +
|
||||
sizeof ( *clazz ) * ( i + 1 ) );
|
||||
i = 0;
|
||||
|
||||
#undef TTCMAPCITEM
|
||||
#define TTCMAPCITEM(a) \
|
||||
FT_Init_Class_##a(&recs[i]); \
|
||||
clazz[i] = &recs[i]; \
|
||||
#define TTCMAPCITEM( a ) \
|
||||
FT_Init_Class_ ## a( &recs[i] ); \
|
||||
clazz[i] = &recs[i]; \
|
||||
i++;
|
||||
#include "ttcmapc.h"
|
||||
|
||||
|
@ -3411,10 +3455,12 @@
|
|||
}
|
||||
|
||||
num_cmaps = TT_NEXT_USHORT( p );
|
||||
|
||||
#ifdef FT_MAX_CHARMAP_CACHEABLE
|
||||
if ( num_cmaps > FT_MAX_CHARMAP_CACHEABLE )
|
||||
FT_ERROR(( "tt_face_build_cmaps: too many cmap subtables(%d) "
|
||||
"subtable#%d and later are loaded but cannot be searched\n",
|
||||
FT_ERROR(( "tt_face_build_cmaps: too many cmap subtables (%d)\n"
|
||||
" subtable #%d and higher are loaded"
|
||||
" but cannot be searched\n",
|
||||
num_cmaps, FT_MAX_CHARMAP_CACHEABLE + 1 ));
|
||||
#endif
|
||||
|
||||
|
@ -3463,9 +3509,9 @@
|
|||
FT_CMap ttcmap;
|
||||
|
||||
|
||||
/* It might make sense to store the single variation selector */
|
||||
/* cmap somewhere special. But it would have to be in the */
|
||||
/* public FT_FaceRec, and we can't change that. */
|
||||
/* It might make sense to store the single variation */
|
||||
/* selector cmap somewhere special. But it would have to be */
|
||||
/* in the public FT_FaceRec, and we can't change that. */
|
||||
|
||||
if ( !FT_CMap_New( (FT_CMap_Class)clazz,
|
||||
cmap, &charmap, &ttcmap ) )
|
||||
|
|
Loading…
Reference in New Issue