forked from minhngoc25a/freetype2
Formatting. Fixing some tracing messages.
This commit is contained in:
parent
5811c7c3a5
commit
768c9561f6
|
@ -117,7 +117,7 @@
|
||||||
while ( p < limit && !isdigit( *p ) )
|
while ( p < limit && !isdigit( *p ) )
|
||||||
{
|
{
|
||||||
sign = 1;
|
sign = 1;
|
||||||
if (*p == '-')
|
if ( *p == '-' )
|
||||||
sign = -1;
|
sign = -1;
|
||||||
|
|
||||||
p++;
|
p++;
|
||||||
|
@ -248,7 +248,7 @@
|
||||||
FT_Vector* kerning )
|
FT_Vector* kerning )
|
||||||
{
|
{
|
||||||
T1_Kern_Pair *min, *mid, *max;
|
T1_Kern_Pair *min, *mid, *max;
|
||||||
FT_ULong index = KERN_INDEX( glyph1, glyph2 );
|
FT_ULong index = KERN_INDEX( glyph1, glyph2 );
|
||||||
|
|
||||||
|
|
||||||
/* simple binary search */
|
/* simple binary search */
|
||||||
|
@ -260,8 +260,9 @@
|
||||||
FT_ULong midi;
|
FT_ULong midi;
|
||||||
|
|
||||||
|
|
||||||
mid = min + ( max - min ) / 2;
|
mid = min + ( max - min ) / 2;
|
||||||
midi = KERN_INDEX( mid->glyph1, mid->glyph2 );
|
midi = KERN_INDEX( mid->glyph1, mid->glyph2 );
|
||||||
|
|
||||||
if ( midi == index )
|
if ( midi == index )
|
||||||
{
|
{
|
||||||
*kerning = mid->kerning;
|
*kerning = mid->kerning;
|
||||||
|
|
|
@ -172,6 +172,7 @@
|
||||||
return T1_Reset_Size( size );
|
return T1_Reset_Size( size );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* <Function> */
|
/* <Function> */
|
||||||
|
@ -195,7 +196,8 @@
|
||||||
FT_UInt result = 0;
|
FT_UInt result = 0;
|
||||||
PSNames_Interface* psnames;
|
PSNames_Interface* psnames;
|
||||||
|
|
||||||
face = (T1_Face)charmap->face;
|
|
||||||
|
face = (T1_Face)charmap->face;
|
||||||
psnames = (PSNames_Interface*)face->psnames;
|
psnames = (PSNames_Interface*)face->psnames;
|
||||||
if ( psnames )
|
if ( psnames )
|
||||||
switch ( charmap->encoding )
|
switch ( charmap->encoding )
|
||||||
|
@ -205,7 +207,7 @@
|
||||||
/* Unicode encoding support */
|
/* Unicode encoding support */
|
||||||
/* */
|
/* */
|
||||||
case ft_encoding_unicode:
|
case ft_encoding_unicode:
|
||||||
/* use the `psnames' module to synthetize the Unicode charmap */
|
/* use the `PSNames' module to synthetize the Unicode charmap */
|
||||||
result = psnames->lookup_unicode( &face->unicode_map,
|
result = psnames->lookup_unicode( &face->unicode_map,
|
||||||
(FT_ULong)charcode );
|
(FT_ULong)charcode );
|
||||||
|
|
||||||
|
|
|
@ -241,17 +241,17 @@
|
||||||
/* Implements the `seac' Type 1 operator for a Type 1 decoder. */
|
/* Implements the `seac' Type 1 operator for a Type 1 decoder. */
|
||||||
/* */
|
/* */
|
||||||
/* <Input> */
|
/* <Input> */
|
||||||
/* decoder :: The current CID decoder. */
|
/* decoder :: The current CID decoder. */
|
||||||
/* */
|
/* */
|
||||||
/* asb :: The accent's side bearing. */
|
/* asb :: The accent's side bearing. */
|
||||||
/* */
|
/* */
|
||||||
/* adx :: The horizontal offset of the accent. */
|
/* adx :: The horizontal offset of the accent. */
|
||||||
/* */
|
/* */
|
||||||
/* ady :: The vertical offset of the accent. */
|
/* ady :: The vertical offset of the accent. */
|
||||||
/* */
|
/* */
|
||||||
/* bchar :: The base character's StandardEncoding charcode. */
|
/* bchar :: The base character's StandardEncoding charcode. */
|
||||||
/* */
|
/* */
|
||||||
/* achar :: The accent character's StandardEncoding charcode. */
|
/* achar :: The accent character's StandardEncoding charcode. */
|
||||||
/* */
|
/* */
|
||||||
/* <Return> */
|
/* <Return> */
|
||||||
/* FreeType error code. 0 means success. */
|
/* FreeType error code. 0 means success. */
|
||||||
|
@ -278,7 +278,8 @@
|
||||||
|
|
||||||
if ( bchar_index < 0 || achar_index < 0 )
|
if ( bchar_index < 0 || achar_index < 0 )
|
||||||
{
|
{
|
||||||
FT_ERROR(( "t1operator_seac: invalid seac character code arguments\n" ));
|
FT_ERROR(( "t1operator_seac:" ));
|
||||||
|
FT_ERROR(( " invalid seac character code arguments\n" ));
|
||||||
return T1_Err_Syntax_Error;
|
return T1_Err_Syntax_Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -371,6 +372,7 @@
|
||||||
|
|
||||||
dummy.n_points = base->n_points - n_base_points;
|
dummy.n_points = base->n_points - n_base_points;
|
||||||
dummy.points = base->points + n_base_points;
|
dummy.points = base->points + n_base_points;
|
||||||
|
|
||||||
FT_Outline_Translate( &dummy, adx - asb, ady );
|
FT_Outline_Translate( &dummy, adx - asb, ady );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -450,17 +452,17 @@
|
||||||
/* Parses a given Type 1 charstrings program. */
|
/* Parses a given Type 1 charstrings program. */
|
||||||
/* */
|
/* */
|
||||||
/* <Input> */
|
/* <Input> */
|
||||||
/* decoder :: The current Type 1 decoder. */
|
/* decoder :: The current Type 1 decoder. */
|
||||||
/* */
|
/* */
|
||||||
/* charstring_base :: The base address of the charstring stream. */
|
/* charstring_base :: The base address of the charstring stream. */
|
||||||
/* */
|
/* */
|
||||||
/* charstring_len :: The length in bytes of the charstring stream. */
|
/* charstring_len :: The length in bytes of the charstring stream. */
|
||||||
/* */
|
/* */
|
||||||
/* num_subrs :: The number of sub-routines. */
|
/* num_subrs :: The number of sub-routines. */
|
||||||
/* */
|
/* */
|
||||||
/* subrs_base :: An array of sub-routines addresses. */
|
/* subrs_base :: An array of sub-routines addresses. */
|
||||||
/* */
|
/* */
|
||||||
/* subrs_len :: An array of sub-routines lengths. */
|
/* subrs_len :: An array of sub-routines lengths. */
|
||||||
/* */
|
/* */
|
||||||
/* <Return> */
|
/* <Return> */
|
||||||
/* Free error code. 0 means success. */
|
/* Free error code. 0 means success. */
|
||||||
|
@ -481,7 +483,8 @@
|
||||||
T1_Builder_Funcs* builds = &builder->funcs;
|
T1_Builder_Funcs* builds = &builder->funcs;
|
||||||
T1_Hinter_Funcs* hints = &decoder->hinter;
|
T1_Hinter_Funcs* hints = &decoder->hinter;
|
||||||
|
|
||||||
static const FT_Int args_count[op_max] =
|
static
|
||||||
|
const FT_Int args_count[op_max] =
|
||||||
{
|
{
|
||||||
0, /* none */
|
0, /* none */
|
||||||
0, /* endchar */
|
0, /* endchar */
|
||||||
|
@ -528,9 +531,9 @@
|
||||||
/* now, execute loop */
|
/* now, execute loop */
|
||||||
while ( ip < limit )
|
while ( ip < limit )
|
||||||
{
|
{
|
||||||
FT_Int* top = decoder->top;
|
FT_Int* top = decoder->top;
|
||||||
T1_Operator op = op_none;
|
T1_Operator op = op_none;
|
||||||
FT_Long value = 0;
|
FT_Long value = 0;
|
||||||
|
|
||||||
|
|
||||||
/* Start with the decompression of operator or value */
|
/* Start with the decompression of operator or value */
|
||||||
|
@ -656,7 +659,8 @@
|
||||||
{
|
{
|
||||||
if ( ++ip > limit )
|
if ( ++ip > limit )
|
||||||
{
|
{
|
||||||
FT_ERROR(( "T1_Parse_CharStrings: unexpected EOF in integer\n" ));
|
FT_ERROR(( "T1_Parse_CharStrings:" ));
|
||||||
|
FT_ERROR(( " unexpected EOF in integer\n" ));
|
||||||
goto Syntax_Error;
|
goto Syntax_Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -674,7 +678,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* push value if needed */
|
/* push value if necessary */
|
||||||
if ( op == op_none )
|
if ( op == op_none )
|
||||||
{
|
{
|
||||||
if ( top - decoder->stack >= T1_MAX_CHARSTRINGS_OPERANDS )
|
if ( top - decoder->stack >= T1_MAX_CHARSTRINGS_OPERANDS )
|
||||||
|
@ -775,10 +779,10 @@
|
||||||
goto Syntax_Error;
|
goto Syntax_Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ip[0] != 12 || ip[1] != 17)
|
if ( ip[0] != 12 || ip[1] != 17 )
|
||||||
{
|
{
|
||||||
FT_ERROR(( "T1_Parse_CharStrings: `pop' expected, found (%d %d)\n",
|
FT_ERROR(( "T1_Parse_CharStrings:" ));
|
||||||
ip[0], ip[1] ));
|
FT_ERROR(( " `pop' expected, found (%d %d)\n", ip[0], ip[1] ));
|
||||||
goto Syntax_Error;
|
goto Syntax_Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -966,7 +970,8 @@
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case op_setcurrentpoint:
|
case op_setcurrentpoint:
|
||||||
FT_ERROR(( "T1_Parse_CharStrings: unexpected `setcurrentpoint'\n" ));
|
FT_ERROR(( "T1_Parse_CharStrings:" ));
|
||||||
|
FT_ERROR(( " unexpected `setcurrentpoint'\n" ));
|
||||||
goto Syntax_Error;
|
goto Syntax_Error;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1224,6 +1229,7 @@
|
||||||
*point++ = *source_point--;
|
*point++ = *source_point--;
|
||||||
*tags++ = *source_tags--;
|
*tags++ = *source_tags--;
|
||||||
num_points--;
|
num_points--;
|
||||||
|
|
||||||
} while ( num_points > 0 );
|
} while ( num_points > 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1237,6 +1243,7 @@
|
||||||
{
|
{
|
||||||
FT_Outline* cur = builder->current;
|
FT_Outline* cur = builder->current;
|
||||||
|
|
||||||
|
|
||||||
/* XXXX: We must not include the last point in the path if it */
|
/* XXXX: We must not include the last point in the path if it */
|
||||||
/* is located on the first point. */
|
/* is located on the first point. */
|
||||||
if ( cur->n_points > 1 )
|
if ( cur->n_points > 1 )
|
||||||
|
@ -1261,7 +1268,7 @@
|
||||||
cur->contours[cur->n_contours - 1] = cur->n_points - 1;
|
cur->contours[cur->n_contours - 1] = cur->n_points - 1;
|
||||||
|
|
||||||
#ifndef T1_CONFIG_OPTION_DISABLE_HINTER
|
#ifndef T1_CONFIG_OPTION_DISABLE_HINTER
|
||||||
/* hint latest points if needed -- this is not strictly required */
|
/* hint last points if necessary -- this is not strictly required */
|
||||||
/* there, but it helps for debugging, and doesn't affect performance */
|
/* there, but it helps for debugging, and doesn't affect performance */
|
||||||
if ( builder->pass == 1 )
|
if ( builder->pass == 1 )
|
||||||
T1_Hint_Points( builder );
|
T1_Hint_Points( builder );
|
||||||
|
@ -1275,7 +1282,7 @@
|
||||||
static
|
static
|
||||||
FT_Error gload_endchar( T1_Builder* builder )
|
FT_Error gload_endchar( T1_Builder* builder )
|
||||||
{
|
{
|
||||||
FT_Error error;
|
FT_Error error;
|
||||||
|
|
||||||
|
|
||||||
/* close path if needed */
|
/* close path if needed */
|
||||||
|
@ -1526,7 +1533,7 @@
|
||||||
FT_Error error;
|
FT_Error error;
|
||||||
|
|
||||||
|
|
||||||
/* Pass 1 - try to load first glyph, simply recording points */
|
/* Pass 1 -- try to load first glyph, simply recording points */
|
||||||
old_points = loader->base.outline.n_points;
|
old_points = loader->base.outline.n_points;
|
||||||
old_contours = loader->base.outline.n_contours;
|
old_contours = loader->base.outline.n_contours;
|
||||||
|
|
||||||
|
@ -1611,11 +1618,11 @@
|
||||||
builder->base->n_points = old_points;
|
builder->base->n_points = old_points;
|
||||||
builder->base->n_contours = old_contours;
|
builder->base->n_contours = old_contours;
|
||||||
|
|
||||||
/* Pass 2 - record and scale/hint the points */
|
/* Pass 2 -- record and scale/hint the points */
|
||||||
T1_Reset_Builder( builder, 0 );
|
T1_Reset_Builder( builder, 0 );
|
||||||
|
|
||||||
builder->pass = 1;
|
builder->pass = 1;
|
||||||
builder->no_recurse = 0;
|
builder->no_recurse = 0;
|
||||||
|
|
||||||
error = T1_Parse_CharStrings( decoder,
|
error = T1_Parse_CharStrings( decoder,
|
||||||
type1->charstrings [glyph_index],
|
type1->charstrings [glyph_index],
|
||||||
|
@ -1634,7 +1641,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif /* T1_CONFIG_OPTION_DISABLE_HINTER */
|
#endif /* !T1_CONFIG_OPTION_DISABLE_HINTER */
|
||||||
|
|
||||||
|
|
||||||
LOCAL_FUNC
|
LOCAL_FUNC
|
||||||
|
@ -1677,7 +1684,7 @@
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
||||||
#endif /* T1_CONFIG_OPTION_DISABLE_HINTER */
|
#endif /* !T1_CONFIG_OPTION_DISABLE_HINTER */
|
||||||
|
|
||||||
{
|
{
|
||||||
T1_Init_Decoder( &decoder, &gload_hinter_interface );
|
T1_Init_Decoder( &decoder, &gload_hinter_interface );
|
||||||
|
@ -1771,6 +1778,7 @@
|
||||||
FT_Fixed x_scale = glyph->x_scale;
|
FT_Fixed x_scale = glyph->x_scale;
|
||||||
FT_Fixed y_scale = glyph->y_scale;
|
FT_Fixed y_scale = glyph->y_scale;
|
||||||
|
|
||||||
|
|
||||||
/* First of all, scale the points */
|
/* First of all, scale the points */
|
||||||
for ( n = cur->n_points; n > 0; n--, vec++ )
|
for ( n = cur->n_points; n > 0; n--, vec++ )
|
||||||
{
|
{
|
||||||
|
|
|
@ -76,7 +76,6 @@
|
||||||
} T1_Builder_Funcs;
|
} T1_Builder_Funcs;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* <Structure> */
|
/* <Structure> */
|
||||||
|
@ -203,7 +202,6 @@
|
||||||
} T1_Hinter_Funcs;
|
} T1_Hinter_Funcs;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef enum T1_Operator_
|
typedef enum T1_Operator_
|
||||||
{
|
{
|
||||||
op_none = 0,
|
op_none = 0,
|
||||||
|
|
|
@ -80,6 +80,7 @@
|
||||||
swap = cur[-2]; cur[-2] = cur[0]; cur[0] = swap;
|
swap = cur[-2]; cur[-2] = cur[0]; cur[0] = swap;
|
||||||
swap = cur[-1]; cur[-1] = cur[1]; cur[1] = swap;
|
swap = cur[-1]; cur[-1] = cur[1]; cur[1] = swap;
|
||||||
cur -= 2;
|
cur -= 2;
|
||||||
|
|
||||||
} while ( cur > blues );
|
} while ( cur > blues );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -658,7 +659,7 @@
|
||||||
max = min;
|
max = min;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* now scan the array. If we find a stem with the same borders */
|
/* Now scan the array. If we find a stem with the same borders */
|
||||||
/* simply activate it. */
|
/* simply activate it. */
|
||||||
cur_stem = stems;
|
cur_stem = stems;
|
||||||
new_stem = 1;
|
new_stem = 1;
|
||||||
|
@ -679,7 +680,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* add a new stem to the array when necessary */
|
/* add a new stem to the array if necessary */
|
||||||
if ( new_stem )
|
if ( new_stem )
|
||||||
{
|
{
|
||||||
if ( cur_stem >= stems + T1_HINTER_MAX_EDGES )
|
if ( cur_stem >= stems + T1_HINTER_MAX_EDGES )
|
||||||
|
@ -701,7 +702,8 @@
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FT_ERROR(( "t1_hinter_stem: fatal glyph loader bug - pass2-stem\n" ));
|
FT_ERROR(( "t1_hinter_stem:" ));
|
||||||
|
FT_ERROR(( " fatal glyph loader bug -- pass2-stem\n" ));
|
||||||
return T1_Err_Syntax_Error;
|
return T1_Err_Syntax_Error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -801,10 +803,10 @@
|
||||||
static
|
static
|
||||||
void t1_sort_hints( T1_Stem_Table* table )
|
void t1_sort_hints( T1_Stem_Table* table )
|
||||||
{
|
{
|
||||||
FT_Int num_stems = table->num_stems;
|
FT_Int num_stems = table->num_stems;
|
||||||
FT_Int num_active = 0;
|
FT_Int num_active = 0;
|
||||||
FT_Int* sort = table->sort;
|
FT_Int* sort = table->sort;
|
||||||
T1_Stem_Hint* stems = table->stems;
|
T1_Stem_Hint* stems = table->stems;
|
||||||
FT_Int n;
|
FT_Int n;
|
||||||
|
|
||||||
|
|
||||||
|
@ -815,7 +817,7 @@
|
||||||
sort[num_active++] = n;
|
sort[num_active++] = n;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* now sort the indices. There are usually very few stems, */
|
/* Now sort the indices. There are usually very few stems, */
|
||||||
/* and they are pre-sorted in 90% cases, so we choose a */
|
/* and they are pre-sorted in 90% cases, so we choose a */
|
||||||
/* simple bubble sort (quicksort would be slower). */
|
/* simple bubble sort (quicksort would be slower). */
|
||||||
for ( n = 1; n < num_active; n++ )
|
for ( n = 1; n < num_active; n++ )
|
||||||
|
@ -841,6 +843,7 @@
|
||||||
sort[p ] = sort[p + 1];
|
sort[p ] = sort[p + 1];
|
||||||
sort[p + 1] = swap;
|
sort[p + 1] = swap;
|
||||||
p--;
|
p--;
|
||||||
|
|
||||||
} while ( p >= 0 );
|
} while ( p >= 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1050,8 +1053,7 @@
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: /* no alignment */
|
default: /* no alignment */
|
||||||
|
/* XXX TODO: Add management of controlled stems */
|
||||||
/* XXXX TODO: Add management of controlled stems */
|
|
||||||
bottom = ( SCALE( bottom_orus + top_orus ) - width_pix ) / 2;
|
bottom = ( SCALE( bottom_orus + top_orus ) - width_pix ) / 2;
|
||||||
|
|
||||||
bottom_pix = ROUND( bottom );
|
bottom_pix = ROUND( bottom );
|
||||||
|
@ -1150,8 +1152,8 @@
|
||||||
|
|
||||||
/* now place the snapped and rounded stem */
|
/* now place the snapped and rounded stem */
|
||||||
|
|
||||||
/* XXXX TODO: implement controlled stems for the overlapping */
|
/* XXX TODO: implement controlled stems for the overlapping */
|
||||||
/* cases */
|
/* cases */
|
||||||
|
|
||||||
left = ( SCALE( stem_left + stem_right ) - width_pix ) / 2;
|
left = ( SCALE( stem_left + stem_right ) - width_pix ) / 2;
|
||||||
|
|
||||||
|
@ -1253,8 +1255,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 1
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* <Function> */
|
/* <Function> */
|
||||||
|
@ -1333,7 +1333,5 @@
|
||||||
scale_x );
|
scale_x );
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* 1 */
|
|
||||||
|
|
||||||
|
|
||||||
/* END */
|
/* END */
|
||||||
|
|
|
@ -97,8 +97,8 @@
|
||||||
/* hint_flags :: Some flags describing the stem properties. */
|
/* hint_flags :: Some flags describing the stem properties. */
|
||||||
/* */
|
/* */
|
||||||
/* <Note> */
|
/* <Note> */
|
||||||
/* The min and max edges of a ghost stem have the same position, */
|
/* The min and max edges of a ghost stem have the same position, even */
|
||||||
/* even if they are coded in a weird way in the charstrings. */
|
/* if they are coded in a weird way in the charstrings. */
|
||||||
/* */
|
/* */
|
||||||
typedef struct T1_Stem_Hint_
|
typedef struct T1_Stem_Hint_
|
||||||
{
|
{
|
||||||
|
|
1923
src/type1/t1load.c
1923
src/type1/t1load.c
File diff suppressed because it is too large
Load Diff
|
@ -1,19 +1,20 @@
|
||||||
/*******************************************************************
|
/***************************************************************************/
|
||||||
*
|
/* */
|
||||||
* t1load.h 1.0
|
/* t1load.h */
|
||||||
*
|
/* */
|
||||||
* Type1 Loader.
|
/* Type 1 font loader (specification). */
|
||||||
*
|
/* */
|
||||||
* Copyright 1996-1998 by
|
/* Copyright 1996-2000 by */
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
*
|
/* */
|
||||||
* This file is part of the FreeType project, and may only be used
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
* modified and distributed under the terms of the FreeType project
|
/* modified, and distributed under the terms of the FreeType project */
|
||||||
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
||||||
* this file you indicate that you have read the license and
|
/* this file you indicate that you have read the license and */
|
||||||
* understand and accept it fully.
|
/* understand and accept it fully. */
|
||||||
*
|
/* */
|
||||||
******************************************************************/
|
/***************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#ifndef T1LOAD_H
|
#ifndef T1LOAD_H
|
||||||
#define T1LOAD_H
|
#define T1LOAD_H
|
||||||
|
@ -25,41 +26,14 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*************************************************************************/
|
LOCAL_DEF
|
||||||
/* */
|
void Init_T1_Parser( T1_Parser* parser,
|
||||||
/* <Function> Init_T1_Parser */
|
T1_Face face,
|
||||||
/* */
|
T1_Tokenizer tokenizer );
|
||||||
/* <Description> */
|
|
||||||
/* Initialise a given parser object to build a given T1_Face */
|
|
||||||
/* */
|
|
||||||
/* <Input> */
|
|
||||||
/* parser :: handle to the newly built parser object */
|
|
||||||
/* face :: handle to target T1 face object */
|
|
||||||
/* */
|
|
||||||
LOCAL_DEF
|
|
||||||
void Init_T1_Parser( T1_Parser* parser,
|
|
||||||
T1_Face face,
|
|
||||||
T1_Tokenizer tokenizer );
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
LOCAL_DEF
|
||||||
/* */
|
FT_Error Parse_T1_FontProgram( T1_Parser* parser );
|
||||||
/* <Function> Parse_T1_FontProgram */
|
|
||||||
/* */
|
|
||||||
/* <Description> */
|
|
||||||
/* Parses a given Type 1 font file and builds its face object */
|
|
||||||
/* */
|
|
||||||
/* <Input> */
|
|
||||||
/* parser :: handle to target parser object */
|
|
||||||
/* */
|
|
||||||
/* <Return> */
|
|
||||||
/* Error code. 0 means success.. */
|
|
||||||
/* */
|
|
||||||
/* <Note> */
|
|
||||||
/* The parser contains a handle to the target face object. */
|
|
||||||
/* */
|
|
||||||
LOCAL_DEF
|
|
||||||
FT_Error Parse_T1_FontProgram( T1_Parser* parser );
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
Loading…
Reference in New Issue