ref: dcd2e14c58d0e454c05f9e24cf12f415b3c3c4df
parent: a929ba9b205c9756f1c0d3c261185e3bacf7fdad
author: Werner Lemberg <[email protected]>
date: Sun Jun 25 03:43:15 EDT 2000
forgotten fixes.
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -2360,7 +2360,7 @@
/* */
/* To add a new renderer, simply use FT_Add_Module(). To retrieve a */
/* renderer by its name, use FT_Get_Module(). */
- /*
+ /* */
FT_EXPORT_FUNC( FT_Renderer ) FT_Get_Renderer( FT_Library library,
FT_Glyph_Format format )
{
@@ -2587,7 +2587,7 @@
FT_UInt nn;
-#define FREETYPE_VER_FIXED ( ( (FT_Long)FREETYPE_MAJOR << 16 ) |
+#define FREETYPE_VER_FIXED ( ( (FT_Long)FREETYPE_MAJOR << 16 ) | \
FREETYPE_MINOR )
if ( !library || !clazz )
@@ -2786,7 +2786,7 @@
/* */
/* <Note> */
/* The module object is destroyed by the function in case of success. */
- /*
+ /* */
FT_EXPORT_FUNC( FT_Error ) FT_Remove_Module( FT_Library library,
FT_Module module )
{
--- a/src/cid/cidafm.c
+++ b/src/cid/cidafm.c
@@ -36,7 +36,7 @@
#define FT_COMPONENT trace_cidafm
-#if 0
+#if 1
LOCAL_FUNC
void CID_Done_AFM( FT_Memory memory,
@@ -281,7 +281,7 @@
kerning->y = 0;
}
-#endif /* 0 */
+#endif /* 1 */
/* END */
--- a/src/cid/cidafm.h
+++ b/src/cid/cidafm.h
@@ -38,7 +38,7 @@
} T1_AFM;
-#if 0
+#if 1
LOCAL_DEF
FT_Error CID_Read_AFM( FT_Face t1_face,
@@ -54,7 +54,7 @@
FT_UInt glyph2,
FT_Vector* kerning );
-#endif /* 0 */
+#endif /* 1 */
#endif /* CIDAFM_H */
--- a/src/cid/type1cid.c
+++ b/src/cid/type1cid.c
@@ -24,7 +24,7 @@
#include <cidriver.c>
#include <cidgload.c>
-#if 0
+#if 1
#include <cidafm.c>
#endif
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -108,9 +108,9 @@
/*************************************************************************/
/* */
- /* Returns the horizontal metrics in font units for a given glyph. */
- /* If `check' is true, take care of monospaced fonts by returning the */
- /* advance width maximum. */
+ /* Returns the horizontal metrics in font units for a given glyph. If */
+ /* `check' is true, take care of monospaced fonts by returning the */
+ /* advance width maximum. */
/* */
static
void Get_HMetrics( TT_Face face,
@@ -415,8 +415,8 @@
FT_Error TT_Load_Composite_Glyph( TT_Loader* loader )
{
FT_Error error;
- FT_Stream stream = loader->stream;
- FT_GlyphLoader* gloader = loader->gloader;
+ FT_Stream stream = loader->stream;
+ FT_GlyphLoader* gloader = loader->gloader;
FT_SubGlyph* subglyph;
FT_UInt num_subglyphs;
@@ -429,7 +429,7 @@
/* check that we can load a new subglyph */
- error = FT_GlyphLoader_Check_Subglyphs( gloader, num_subglyphs+1 );
+ error = FT_GlyphLoader_Check_Subglyphs( gloader, num_subglyphs + 1 );
if ( error )
goto Fail;
@@ -480,8 +480,7 @@
subglyph->transform.yy = yy;
num_subglyphs++;
- }
- while (subglyph->flags & MORE_COMPONENTS);
+ } while ( subglyph->flags & MORE_COMPONENTS );
gloader->current.num_subglyphs = num_subglyphs;
@@ -562,7 +561,7 @@
/* Note that we return two more points that are not */
/* part of the glyph outline. */
- n_points += 2;
+ n_points += 2;
/* set up zone for hinting */
tt_prepare_zone( zone, &gloader->current, 0, 0 );
@@ -691,7 +690,7 @@
Get_HMetrics( face, index,
(FT_Bool)!(loader->load_flags &
- FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH),
+ FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH),
&left_bearing,
&advance_width );
@@ -721,8 +720,10 @@
loader->pp2.x = FT_MulFix( loader->pp2.x, x_scale );
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
+
if ( loader->exec )
loader->exec->glyphSize = 0;
+
#endif
error = FT_Err_Ok;
goto Exit;
@@ -777,14 +778,21 @@
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
{
TT_Size size = (TT_Size)loader->size;
+
+
error = TT_Process_Simple_Glyph( loader,
(FT_Bool)( size && size->debug ) );
}
+
#else
+
error = Process_Simple_Glyph( loader, 0 );
+
#endif
- if ( error ) goto Fail;
+ if ( error )
+ goto Fail;
+
FT_GlyphLoader_Add( gloader );
/* Note: We could have put the simple loader source there */
@@ -830,15 +838,14 @@
}
- /***********************************************************************/
- /***********************************************************************/
- /***********************************************************************/
-
/*********************************************************************/
- /* Now, read each subglyph independently.. */
+ /*********************************************************************/
+ /*********************************************************************/
+
+ /* Now, read each subglyph independently. */
{
FT_Int n, num_base_points, num_new_points;
- FT_SubGlyph* subglyph;
+ FT_SubGlyph* subglyph = 0;
FT_UInt num_subglyphs = gloader->current.num_subglyphs;
FT_UInt num_base_subgs = gloader->base.num_subglyphs;
@@ -851,6 +858,7 @@
FT_Vector pp1, pp2;
FT_Pos x, y;
+
/* Each time we call load_truetype_glyph in this loop, the */
/* value of `gloader.base.subglyphs' can change due to table */
/* reallocations. We thus need to recompute the subglyph */
@@ -879,7 +887,7 @@
loader->pp2 = pp2;
}
- num_points = gloader->base.outline.n_points;
+ num_points = gloader->base.outline.n_points;
num_new_points = num_points - num_base_points;
@@ -895,6 +903,7 @@
num_base_points;
FT_Vector* limit = cur + num_new_points;
+
for ( ; cur < limit; cur++, org++ )
{
FT_Vector_Transform( cur, &subglyph->transform );
@@ -949,9 +958,9 @@
cur_to_org( num_new_points, &loader->zone );
}
- /***********************************************************************/
- /***********************************************************************/
- /***********************************************************************/
+ /*******************************************************************/
+ /*******************************************************************/
+ /*******************************************************************/
/* we have finished loading all sub-glyphs, now, look for */
/* instructions for this composite! */
@@ -1036,11 +1045,11 @@
cur_to_org( n_points, pts );
/* now consider hinting */
- if ( IS_HINTED(loader->load_flags) && n_ins > 0 )
+ if ( IS_HINTED( loader->load_flags ) && n_ins > 0 )
{
exec->is_composite = TRUE;
exec->pedantic_hinting =
- (FT_Bool)(loader->load_flags & FT_LOAD_PEDANTIC);
+ (FT_Bool)( loader->load_flags & FT_LOAD_PEDANTIC );
error = TT_Run_Context( exec, ((TT_Size)loader->size)->debug );
if ( error && exec->pedantic_hinting )
@@ -1051,7 +1060,9 @@
loader->pp1 = pp1[0];
loader->pp2 = pp1[1];
}
+
#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
+
}
/* end of composite loading */
}
@@ -1059,7 +1070,6 @@
/***********************************************************************/
/***********************************************************************/
/***********************************************************************/
- /***********************************************************************/
Fail:
if ( opened_frame )
@@ -1080,6 +1090,7 @@
TT_GlyphSlot glyph = loader->glyph;
TT_Size size = (TT_Size)loader->size;
+
x_scale = 0x10000L;
y_scale = 0x10000L;
if ( ( loader->load_flags & FT_LOAD_NO_SCALE ) == 0 )
@@ -1234,12 +1245,14 @@
glyph->metrics.vertAdvance = advance;
}
- /* Adjust advance width to the value contained in the hdmx table. */
+ /* adjust advance width to the value contained in the hdmx table */
if ( !face->postscript.isFixedPitch && size &&
IS_HINTED( loader->load_flags ) )
{
FT_Byte* widths = Get_Advance_Widths( face,
size->root.metrics.x_ppem );
+
+
if ( widths )
glyph->metrics.horiAdvance = widths[glyph_index] << 6;
}
@@ -1247,7 +1260,6 @@
/* set glyph dimensions */
glyph->metrics.width = bbox.xMax - bbox.xMin;
glyph->metrics.height = bbox.yMax - bbox.yMin;
-
}
@@ -1367,7 +1379,7 @@
error = face->goto_table( face, TTAG_glyf, stream, 0 );
if ( error )
{
- FT_ERROR(( "TT_Load_Glyph: Could not access glyph table\n" ));
+ FT_ERROR(( "TT_Load_Glyph: could not access glyph table\n" ));
goto Exit;
}
@@ -1439,9 +1451,11 @@
compute_glyph_metrics( &loader, glyph_index );
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
+
if ( !size || !size->debug )
TT_Done_Context( loader.exec );
-#endif
+
+#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
Exit:
return error;