|
|
|
@ -4,7 +4,7 @@ |
|
|
|
|
/* */ |
|
|
|
|
/* TrueType character mapping table (cmap) support (specification). */ |
|
|
|
|
/* */ |
|
|
|
|
/* Copyright 2002, 2003, 2004, 2005 by */ |
|
|
|
|
/* Copyright 2002-2005, 2009, 2012 by */ |
|
|
|
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
|
|
|
|
/* */ |
|
|
|
|
/* This file is part of the FreeType project, and may only be used, */ |
|
|
|
@ -55,47 +55,80 @@ FT_BEGIN_HEADER |
|
|
|
|
|
|
|
|
|
} TT_CMap_ClassRec; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef FT_CONFIG_OPTION_PIC |
|
|
|
|
|
|
|
|
|
#define FT_DEFINE_TT_CMAP(class_, size_, init_, done_, char_index_, \ |
|
|
|
|
char_next_, char_var_index_, char_var_default_, variant_list_, \
|
|
|
|
|
charvariant_list_,variantchar_list_, \
|
|
|
|
|
format_, validate_, get_cmap_info_) \
|
|
|
|
|
FT_CALLBACK_TABLE_DEF \
|
|
|
|
|
const TT_CMap_ClassRec class_ = \
|
|
|
|
|
{ \
|
|
|
|
|
{size_, init_, done_, char_index_, \
|
|
|
|
|
char_next_, char_var_index_, char_var_default_, variant_list_, \
|
|
|
|
|
charvariant_list_, variantchar_list_}, \
|
|
|
|
|
format_, validate_, get_cmap_info_ \
|
|
|
|
|
#define FT_DEFINE_TT_CMAP( class_, \ |
|
|
|
|
size_, \
|
|
|
|
|
init_, \
|
|
|
|
|
done_, \
|
|
|
|
|
char_index_, \
|
|
|
|
|
char_next_, \
|
|
|
|
|
char_var_index_, \
|
|
|
|
|
char_var_default_, \
|
|
|
|
|
variant_list_, \
|
|
|
|
|
charvariant_list_, \
|
|
|
|
|
variantchar_list_, \
|
|
|
|
|
format_, \
|
|
|
|
|
validate_, \
|
|
|
|
|
get_cmap_info_ ) \
|
|
|
|
|
FT_CALLBACK_TABLE_DEF \
|
|
|
|
|
const TT_CMap_ClassRec class_ = \
|
|
|
|
|
{ \
|
|
|
|
|
{ size_, \
|
|
|
|
|
init_, \
|
|
|
|
|
done_, \
|
|
|
|
|
char_index_, \
|
|
|
|
|
char_next_, \
|
|
|
|
|
char_var_index_, \
|
|
|
|
|
char_var_default_, \
|
|
|
|
|
variant_list_, \
|
|
|
|
|
charvariant_list_, \
|
|
|
|
|
variantchar_list_ \
|
|
|
|
|
}, \
|
|
|
|
|
\
|
|
|
|
|
format_, \
|
|
|
|
|
validate_, \
|
|
|
|
|
get_cmap_info_ \
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
#else /* FT_CONFIG_OPTION_PIC */ |
|
|
|
|
|
|
|
|
|
#define FT_DEFINE_TT_CMAP(class_, size_, init_, done_, char_index_, \ |
|
|
|
|
char_next_, char_var_index_, char_var_default_, variant_list_, \
|
|
|
|
|
charvariant_list_,variantchar_list_, \
|
|
|
|
|
format_, validate_, get_cmap_info_) \
|
|
|
|
|
void \
|
|
|
|
|
FT_Init_Class_##class_( TT_CMap_ClassRec* clazz ) \
|
|
|
|
|
{ \
|
|
|
|
|
clazz->clazz.size = size_; \
|
|
|
|
|
clazz->clazz.init = init_; \
|
|
|
|
|
clazz->clazz.done = done_; \
|
|
|
|
|
clazz->clazz.char_index = char_index_; \
|
|
|
|
|
clazz->clazz.char_next = char_next_; \
|
|
|
|
|
clazz->clazz.char_var_index = char_var_index_; \
|
|
|
|
|
clazz->clazz.char_var_default = char_var_default_; \
|
|
|
|
|
clazz->clazz.variant_list = variant_list_; \
|
|
|
|
|
clazz->clazz.charvariant_list = charvariant_list_; \
|
|
|
|
|
clazz->clazz.variantchar_list = variantchar_list_; \
|
|
|
|
|
clazz->format = format_; \
|
|
|
|
|
clazz->validate = validate_; \
|
|
|
|
|
clazz->get_cmap_info = get_cmap_info_; \
|
|
|
|
|
#define FT_DEFINE_TT_CMAP( class_, \ |
|
|
|
|
size_, \
|
|
|
|
|
init_, \
|
|
|
|
|
done_, \
|
|
|
|
|
char_index_, \
|
|
|
|
|
char_next_, \
|
|
|
|
|
char_var_index_, \
|
|
|
|
|
char_var_default_, \
|
|
|
|
|
variant_list_, \
|
|
|
|
|
charvariant_list_, \
|
|
|
|
|
variantchar_list_, \
|
|
|
|
|
format_, \
|
|
|
|
|
validate_, \
|
|
|
|
|
get_cmap_info_ ) \
|
|
|
|
|
void \
|
|
|
|
|
FT_Init_Class_ ## class_( TT_CMap_ClassRec* clazz ) \
|
|
|
|
|
{ \
|
|
|
|
|
clazz->clazz.size = size_; \
|
|
|
|
|
clazz->clazz.init = init_; \
|
|
|
|
|
clazz->clazz.done = done_; \
|
|
|
|
|
clazz->clazz.char_index = char_index_; \
|
|
|
|
|
clazz->clazz.char_next = char_next_; \
|
|
|
|
|
clazz->clazz.char_var_index = char_var_index_; \
|
|
|
|
|
clazz->clazz.char_var_default = char_var_default_; \
|
|
|
|
|
clazz->clazz.variant_list = variant_list_; \
|
|
|
|
|
clazz->clazz.charvariant_list = charvariant_list_; \
|
|
|
|
|
clazz->clazz.variantchar_list = variantchar_list_; \
|
|
|
|
|
clazz->format = format_; \
|
|
|
|
|
clazz->validate = validate_; \
|
|
|
|
|
clazz->get_cmap_info = get_cmap_info_; \
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#endif /* FT_CONFIG_OPTION_PIC */ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct TT_ValidatorRec_ |
|
|
|
|
{ |
|
|
|
|
FT_ValidatorRec validator; |
|
|
|
@ -104,7 +137,7 @@ FT_BEGIN_HEADER |
|
|
|
|
} TT_ValidatorRec, *TT_Validator; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define TT_VALIDATOR( x ) ((TT_Validator)( x )) |
|
|
|
|
#define TT_VALIDATOR( x ) ( (TT_Validator)( x ) ) |
|
|
|
|
#define TT_VALID_GLYPH_COUNT( x ) TT_VALIDATOR( x )->num_glyphs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|