387 #define decoder (*decoder) 404 #ifdef FT_CONFIG_OPTION_INCREMENTAL 409 #ifdef FT_CONFIG_OPTION_INCREMENTAL 410 if ( glyph_index >= (
FT_UInt)
face->root.num_glyphs &&
411 !
face->root.internal->incremental_interface )
413 if ( glyph_index >= (
FT_UInt)
face->root.num_glyphs )
420 FT_TRACE1((
"T1_Load_Glyph: glyph index %d\n", glyph_index ));
429 glyph->
x_scale = t1size->metrics.x_scale;
430 glyph->
y_scale = t1size->metrics.y_scale;
438 t1glyph->outline.n_points = 0;
439 t1glyph->outline.n_contours = 0;
445 glyph->
hint = hinting;
461 must_finish_decoder =
TRUE;
467 decoder.
subrs = type1->subrs;
480 #ifdef FT_CONFIG_OPTION_INCREMENTAL 481 glyph_data_loaded = 1;
484 hinting = glyph->
hint;
489 decoder_funcs->
done( &decoder );
491 must_finish_decoder =
FALSE;
508 t1glyph->metrics.horiBearingX =
510 t1glyph->metrics.horiAdvance =
513 internal->glyph_matrix = font_matrix;
514 internal->glyph_delta = font_offset;
515 internal->glyph_transformed = 1;
526 t1glyph->linearHoriAdvance =
528 t1glyph->internal->glyph_transformed = 0;
533 metrics->vertAdvance = (
face->type1.font_bbox.yMax -
534 face->type1.font_bbox.yMin ) >> 16;
535 t1glyph->linearVertAdvance =
metrics->vertAdvance;
541 t1glyph->linearVertAdvance =
547 if ( t1size && t1size->metrics.y_ppem < 24 )
552 if ( font_matrix.
xx != 0x10000L || font_matrix.
yy != 0x10000L ||
553 font_matrix.
xy != 0 || font_matrix.
yx != 0 )
563 if ( font_offset.
x || font_offset.
y )
569 metrics->horiAdvance += font_offset.
x;
570 metrics->vertAdvance += font_offset.
y;
586 for (
n =
cur->n_points;
n > 0;
n--,
vec++ )
617 t1glyph->control_len = glyph_data.
length;
623 #ifdef FT_CONFIG_OPTION_INCREMENTAL 624 if ( glyph_data_loaded &&
face->root.internal->incremental_interface )
626 face->root.internal->incremental_interface->funcs->free_glyph_data(
627 face->root.internal->incremental_interface->object,
632 t1glyph->control_data =
NULL;
633 t1glyph->control_len = 0;
637 if ( must_finish_decoder )
638 decoder_funcs->
done( &decoder );
struct T1_GlyphSlotRec_ * T1_GlyphSlot
#define FT_LOAD_VERTICAL_LAYOUT
struct T1_FaceRec_ * T1_Face
ft_synthesize_vertical_metrics(FT_Glyph_Metrics *metrics, FT_Pos advance)
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
#define FT_LOAD_NO_HINTING
#define FT_LOAD_NO_RECURSE
void(* done)(T1_Decoder decoder)
FT_BEGIN_HEADER typedef unsigned char FT_Bool
#define FT_TRACE1(varformat)
#define FT_ASSERT(condition)
static FT_Error T1_Parse_Glyph_And_Get_Char_String(T1_Decoder decoder, FT_UInt glyph_index, FT_Data *char_string, FT_Bool *force_scaling)
FT_Outline_Get_CBox(const FT_Outline *outline, FT_BBox *acbox)
FT_Outline_Transform(const FT_Outline *outline, const FT_Matrix *matrix)
#define FT_OUTLINE_HIGH_PRECISION
smooth FT_Module_Constructor FT_Module_Destructor FT_Module_Requester FT_GLYPH_FORMAT_OUTLINE
FT_Error(* init)(T1_Decoder decoder, FT_Face face, FT_Size size, FT_GlyphSlot slot, FT_Byte **glyph_names, PS_Blend blend, FT_Bool hinting, FT_Render_Mode hint_mode, T1_Decoder_Callback callback)
FT_MulFix(FT_Long a, FT_Long b)
FT_BEGIN_HEADER struct FT_Glyph_Metrics_ FT_Glyph_Metrics
FT_Outline_Translate(const FT_Outline *outline, FT_Pos xOffset, FT_Pos yOffset)
GLenum GLuint GLint GLenum face
#define FT_OUTLINE_REVERSE_FILL
T1_Parse_Glyph(T1_Decoder decoder, FT_UInt glyph_index)
#define FT_LOAD_TARGET_MODE(x)