forked from minhngoc25a/freetype2
* include/freetype/config/ftoption.h, include/freetype/internal/tttypes.h,
src/base/ftobjs.c, src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/pcf/pcfdrivr.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h, src/sfnt/ttload.c, src/type1/t1objs.c, src/type42/t42objs.c, src/winfonts/winfnt.c: code cleanup, FT_CONFIG_OPTION_USE_CMAPS is now the default
This commit is contained in:
parent
33847031d3
commit
bd65ed97aa
|
@ -46,9 +46,6 @@ THE SOFTWARE.
|
|||
#define FT_COMPONENT trace_bdfdriver
|
||||
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
|
||||
|
||||
typedef struct BDF_CMapRec_
|
||||
{
|
||||
FT_CMapRec cmap;
|
||||
|
@ -171,39 +168,6 @@ THE SOFTWARE.
|
|||
};
|
||||
|
||||
|
||||
#else /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
|
||||
static FT_UInt
|
||||
BDF_Get_Char_Index( FT_CharMap charmap,
|
||||
FT_ULong char_code )
|
||||
{
|
||||
BDF_Face face = (BDF_Face)charmap->face;
|
||||
BDF_encoding_el* en_table = face->en_table;
|
||||
int low, high, mid;
|
||||
|
||||
|
||||
FT_TRACE4(( "BDF_Get_Char_Index %ld\n", char_code ));
|
||||
|
||||
low = 0;
|
||||
high = face->bdffont->glyphs_used - 1;
|
||||
|
||||
while ( low <= high )
|
||||
{
|
||||
mid = ( low + high ) / 2;
|
||||
if ( char_code < en_table[mid].enc )
|
||||
high = mid - 1;
|
||||
else if ( char_code > en_table[mid].enc )
|
||||
low = mid + 1;
|
||||
else
|
||||
return en_table[mid].glyph + 1;
|
||||
}
|
||||
|
||||
return face->bdffont->default_glyph + 1;
|
||||
}
|
||||
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
|
||||
FT_CALLBACK_DEF( FT_Error )
|
||||
|
@ -429,8 +393,6 @@ THE SOFTWARE.
|
|||
!ft_strcmp( face->charset_encoding, "1" ) ) )
|
||||
unicode_charmap = 1;
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
|
||||
{
|
||||
FT_CharMapRec charmap;
|
||||
|
||||
|
@ -454,32 +416,12 @@ THE SOFTWARE.
|
|||
root->charmap = root->charmaps[0];
|
||||
}
|
||||
|
||||
#else /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
face->charmap.encoding = ft_encoding_none;
|
||||
face->charmap.platform_id = 0;
|
||||
face->charmap.encoding_id = 0;
|
||||
if ( unicode_charmap )
|
||||
{
|
||||
face->charmap.encoding = ft_encoding_unicode;
|
||||
face->charmap.platform_id = 3;
|
||||
face->charmap.encoding_id = 1;
|
||||
}
|
||||
face->charmap.face = root;
|
||||
face->charmap_handle = &face->charmap;
|
||||
|
||||
root->charmap = face->charmap_handle;
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
goto Exit;
|
||||
}
|
||||
}
|
||||
|
||||
/* otherwise assume Adobe standard encoding */
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
|
||||
{
|
||||
FT_CharMapRec charmap;
|
||||
|
||||
|
@ -495,19 +437,6 @@ THE SOFTWARE.
|
|||
if (root->num_charmaps)
|
||||
root->charmap = root->charmaps[0];
|
||||
}
|
||||
|
||||
#else /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
face->charmap.encoding = ft_encoding_adobe_standard;
|
||||
face->charmap.platform_id = 7; /* taken from t1objs.c */
|
||||
face->charmap.encoding_id = 0;
|
||||
face->charmap.face = root;
|
||||
face->charmap_handle = &face->charmap;
|
||||
|
||||
root->charmap = face->charmap_handle;
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -733,21 +662,13 @@ THE SOFTWARE.
|
|||
|
||||
(FT_Slot_LoadFunc) BDF_Glyph_Load,
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
(FT_CharMap_CharIndexFunc)0,
|
||||
#else
|
||||
(FT_CharMap_CharIndexFunc)BDF_Get_Char_Index,
|
||||
#endif
|
||||
|
||||
(FT_Face_GetKerningFunc) 0,
|
||||
(FT_Face_AttachFunc) 0,
|
||||
(FT_Face_GetAdvancesFunc) 0,
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
(FT_CharMap_CharNextFunc) 0
|
||||
#else
|
||||
(FT_CharMap_CharNextFunc) 0 /* BDF_Get_Next_Char */
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -41,8 +41,6 @@ THE SOFTWARE.
|
|||
#define FT_COMPONENT trace_pcfread
|
||||
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
|
||||
typedef struct PCF_CMapRec_
|
||||
{
|
||||
FT_CMapRec cmap;
|
||||
|
@ -164,77 +162,6 @@ THE SOFTWARE.
|
|||
(FT_CMap_CharNextFunc) pcf_cmap_char_next
|
||||
};
|
||||
|
||||
#else /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
static FT_UInt
|
||||
PCF_Char_Get_Index( FT_CharMap charmap,
|
||||
FT_Long char_code )
|
||||
{
|
||||
PCF_Face face = (PCF_Face)charmap->face;
|
||||
PCF_Encoding en_table = face->encodings;
|
||||
int low, high, mid;
|
||||
|
||||
|
||||
FT_TRACE4(( "get_char_index %ld\n", char_code ));
|
||||
|
||||
low = 0;
|
||||
high = face->nencodings - 1;
|
||||
while ( low <= high )
|
||||
{
|
||||
mid = ( low + high ) / 2;
|
||||
if ( char_code < en_table[mid].enc )
|
||||
high = mid - 1;
|
||||
else if ( char_code > en_table[mid].enc )
|
||||
low = mid + 1;
|
||||
else
|
||||
return en_table[mid].glyph + 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static FT_Long
|
||||
PCF_Char_Get_Next( FT_CharMap charmap,
|
||||
FT_Long char_code )
|
||||
{
|
||||
PCF_Face face = (PCF_Face)charmap->face;
|
||||
PCF_Encoding en_table = face->encodings;
|
||||
int low, high, mid;
|
||||
|
||||
|
||||
FT_TRACE4(( "get_next_char %ld\n", char_code ));
|
||||
|
||||
char_code++;
|
||||
low = 0;
|
||||
high = face->nencodings - 1;
|
||||
|
||||
while ( low <= high )
|
||||
{
|
||||
mid = ( low + high ) / 2;
|
||||
if ( char_code < en_table[mid].enc )
|
||||
high = mid - 1;
|
||||
else if ( char_code > en_table[mid].enc )
|
||||
low = mid + 1;
|
||||
else
|
||||
return char_code;
|
||||
}
|
||||
|
||||
if ( high < 0 )
|
||||
high = 0;
|
||||
|
||||
while ( high < face->nencodings )
|
||||
{
|
||||
if ( en_table[high].enc >= char_code )
|
||||
return en_table[high].enc;
|
||||
high++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
|
@ -321,8 +248,6 @@ THE SOFTWARE.
|
|||
unicode_charmap = 1;
|
||||
}
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
|
||||
{
|
||||
FT_CharMapRec charmap;
|
||||
|
||||
|
@ -345,30 +270,6 @@ THE SOFTWARE.
|
|||
if (face->root.num_charmaps)
|
||||
face->root.charmap = face->root.charmaps[0];
|
||||
}
|
||||
|
||||
#else /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
/* XXX: charmaps. For now, report unicode for Unicode and Latin 1 */
|
||||
face->root.charmaps = &face->charmap_handle;
|
||||
face->root.num_charmaps = 1;
|
||||
|
||||
face->charmap.encoding = ft_encoding_none;
|
||||
face->charmap.platform_id = 0;
|
||||
face->charmap.encoding_id = 0;
|
||||
|
||||
if ( unicode_charmap )
|
||||
{
|
||||
face->charmap.encoding = ft_encoding_unicode;
|
||||
face->charmap.platform_id = 3;
|
||||
face->charmap.encoding_id = 1;
|
||||
}
|
||||
|
||||
face->charmap.face = &face->root;
|
||||
face->charmap_handle = &face->charmap;
|
||||
face->root.charmap = face->charmap_handle;
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
}
|
||||
|
||||
Exit:
|
||||
|
@ -559,21 +460,13 @@ THE SOFTWARE.
|
|||
|
||||
(FT_Slot_LoadFunc) PCF_Glyph_Load,
|
||||
|
||||
#ifndef FT_CONFIG_OPTION_USE_CMAPS
|
||||
(FT_CharMap_CharIndexFunc)PCF_Char_Get_Index,
|
||||
#else
|
||||
(FT_CharMap_CharIndexFunc)0,
|
||||
#endif
|
||||
|
||||
(FT_Face_GetKerningFunc) 0,
|
||||
(FT_Face_AttachFunc) 0,
|
||||
(FT_Face_GetAdvancesFunc) 0,
|
||||
|
||||
#ifndef FT_CONFIG_OPTION_USE_CMAPS
|
||||
(FT_CharMap_CharNextFunc) PCF_Char_Get_Next,
|
||||
#else
|
||||
(FT_CharMap_CharNextFunc) 0
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -283,8 +283,6 @@
|
|||
if ( face->ttf_face->face_flags & FT_FACE_FLAG_VERTICAL )
|
||||
root->face_flags |= FT_FACE_FLAG_VERTICAL;
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
|
||||
{
|
||||
if ( psnames && psaux )
|
||||
{
|
||||
|
@ -344,79 +342,6 @@
|
|||
root->charmap = root->charmaps[0];
|
||||
}
|
||||
}
|
||||
|
||||
#else /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
/* charmap support -- synthetize unicode charmap if possible */
|
||||
{
|
||||
FT_CharMap charmap = face->charmaprecs;
|
||||
|
||||
|
||||
/* synthesize a Unicode charmap if there is support in the `PSNames' */
|
||||
/* module */
|
||||
if ( psnames && psnames->unicode_value )
|
||||
{
|
||||
error = psnames->build_unicodes( root->memory,
|
||||
face->type1.num_glyphs,
|
||||
(const char**)face->type1.glyph_names,
|
||||
&face->unicode_map );
|
||||
if ( !error )
|
||||
{
|
||||
root->charmap = charmap;
|
||||
charmap->face = (FT_Face)face;
|
||||
charmap->encoding = ft_encoding_unicode;
|
||||
charmap->platform_id = 3;
|
||||
charmap->encoding_id = 1;
|
||||
charmap++;
|
||||
}
|
||||
|
||||
/* XXX: Is the following code correct? It is used in t1objs.c */
|
||||
|
||||
/* simply clear the error in case of failure (which really) */
|
||||
/* means that out of memory or no unicode glyph names */
|
||||
error = T42_Err_Ok;
|
||||
}
|
||||
|
||||
/* now, support either the standard, expert, or custom encoding */
|
||||
charmap->face = (FT_Face)face;
|
||||
charmap->platform_id = 7; /* a new platform id for Adobe fonts? */
|
||||
|
||||
switch ( face->type1.encoding_type )
|
||||
{
|
||||
case T1_ENCODING_TYPE_STANDARD:
|
||||
charmap->encoding = ft_encoding_adobe_standard;
|
||||
charmap->encoding_id = 0;
|
||||
break;
|
||||
|
||||
case T1_ENCODING_TYPE_EXPERT:
|
||||
charmap->encoding = ft_encoding_adobe_expert;
|
||||
charmap->encoding_id = 1;
|
||||
break;
|
||||
|
||||
case T1_ENCODING_TYPE_ARRAY:
|
||||
charmap->encoding = ft_encoding_adobe_custom;
|
||||
charmap->encoding_id = 2;
|
||||
break;
|
||||
|
||||
case T1_ENCODING_TYPE_ISOLATIN1:
|
||||
charmap->encoding = ft_encoding_latin_1;
|
||||
charmap->encoding_id = 3;
|
||||
break;
|
||||
|
||||
default:
|
||||
FT_ERROR(( "T42_Face_Init: invalid encoding\n" ));
|
||||
error = T42_Err_Invalid_File_Format;
|
||||
goto Exit;
|
||||
}
|
||||
|
||||
root->charmaps = face->charmaps;
|
||||
root->num_charmaps = charmap - face->charmaprecs + 1;
|
||||
face->charmaps[0] = &face->charmaprecs[0];
|
||||
face->charmaps[1] = &face->charmaprecs[1];
|
||||
}
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
Exit:
|
||||
return error;
|
||||
}
|
||||
|
@ -718,7 +643,7 @@
|
|||
|
||||
|
||||
FT_Activate_Size(size->ttsize);
|
||||
|
||||
|
||||
return FT_Set_Char_Size( t42face->ttf_face,
|
||||
char_width,
|
||||
char_height,
|
||||
|
@ -737,7 +662,7 @@
|
|||
|
||||
|
||||
FT_Activate_Size(size->ttsize);
|
||||
|
||||
|
||||
return FT_Set_Pixel_Sizes( t42face->ttf_face,
|
||||
pixel_width,
|
||||
pixel_height );
|
||||
|
@ -807,10 +732,10 @@
|
|||
glyph->bitmap = t42slot->ttslot->bitmap;
|
||||
glyph->bitmap_left = t42slot->ttslot->bitmap_left;
|
||||
glyph->bitmap_top = t42slot->ttslot->bitmap_top;
|
||||
|
||||
|
||||
glyph->num_subglyphs = t42slot->ttslot->num_subglyphs;
|
||||
glyph->subglyphs = t42slot->ttslot->subglyphs;
|
||||
|
||||
|
||||
glyph->control_data = t42slot->ttslot->control_data;
|
||||
glyph->control_len = t42slot->ttslot->control_len;
|
||||
}
|
||||
|
|
|
@ -310,8 +310,6 @@
|
|||
}
|
||||
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
|
||||
|
||||
typedef struct FNT_CMapRec_
|
||||
{
|
||||
|
@ -393,57 +391,6 @@
|
|||
static FT_CMap_Class fnt_cmap_class = &fnt_cmap_class_rec;
|
||||
|
||||
|
||||
#else /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
|
||||
static FT_UInt
|
||||
FNT_Get_Char_Index( FT_CharMap charmap,
|
||||
FT_Long char_code )
|
||||
{
|
||||
FT_Long result = char_code;
|
||||
|
||||
|
||||
if ( charmap )
|
||||
{
|
||||
FNT_Font font = ((FNT_Face)charmap->face)->fonts;
|
||||
FT_Long first = font->header.first_char;
|
||||
FT_Long count = font->header.last_char - first + 1;
|
||||
|
||||
|
||||
char_code -= first;
|
||||
if ( char_code < count )
|
||||
result = char_code + 1;
|
||||
else
|
||||
result = 0;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
static FT_Long
|
||||
FNT_Get_Next_Char( FT_CharMap charmap,
|
||||
FT_Long char_code )
|
||||
{
|
||||
char_code++;
|
||||
if ( charmap )
|
||||
{
|
||||
FNT_Font font = ((FNT_Face)charmap->face)->fonts;
|
||||
FT_Long first = font->header.first_char;
|
||||
|
||||
|
||||
if ( char_code < first )
|
||||
char_code = first;
|
||||
if ( char_code <= font->header.last_char )
|
||||
return char_code;
|
||||
}
|
||||
else
|
||||
return char_code;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
|
||||
static void
|
||||
FNT_Face_Done( FNT_Face face )
|
||||
|
@ -534,8 +481,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
|
||||
{
|
||||
FT_CharMapRec charmap;
|
||||
|
||||
|
@ -556,23 +501,6 @@
|
|||
root->charmap = root->charmaps[0];
|
||||
}
|
||||
|
||||
#else /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
/* Setup the `charmaps' array */
|
||||
root->charmaps = &face->charmap_handle;
|
||||
root->num_charmaps = 1;
|
||||
|
||||
face->charmap.encoding = ft_encoding_unicode;
|
||||
face->charmap.platform_id = 3;
|
||||
face->charmap.encoding_id = 1;
|
||||
face->charmap.face = root;
|
||||
|
||||
face->charmap_handle = &face->charmap;
|
||||
|
||||
root->charmap = face->charmap_handle;
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
/* setup remaining flags */
|
||||
root->num_glyphs = fonts->header.last_char -
|
||||
fonts->header.first_char + 1;
|
||||
|
@ -754,22 +682,14 @@
|
|||
(FT_Size_ResetPixelsFunc) FNT_Size_Set_Pixels,
|
||||
(FT_Slot_LoadFunc) FNT_Load_Glyph,
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
(FT_CharMap_CharIndexFunc)0,
|
||||
#else
|
||||
(FT_CharMap_CharIndexFunc)FNT_Get_Char_Index,
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
(FT_Face_GetKerningFunc) 0,
|
||||
(FT_Face_AttachFunc) 0,
|
||||
(FT_Face_GetAdvancesFunc) 0,
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
(FT_CharMap_CharNextFunc) 0
|
||||
#else
|
||||
(FT_CharMap_CharNextFunc) FNT_Get_Next_Char
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue