fixed max advance width computation within T1 driver

This commit is contained in:
David Turner 2002-04-17 09:37:59 +00:00
parent 9928df86f2
commit 11cfdd04a2
3 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2002-04-17 Michael Jansson <mjan@em2-solutions.com>
* src/type1/t1gload.c (T1_Compute_Max_Advance): fixed a small bug
that prevented the function to return the correct value.
2002-04-16 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr> 2002-04-16 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
* src/pcf/pcfread (pcf_get_accell): Fix parsing of accelerator * src/pcf/pcfread (pcf_get_accell): Fix parsing of accelerator

View File

@ -11,6 +11,10 @@ LATEST CHANGES BETWEEN 2.1.0 and 2.0.9
to rounding errors. The required vector computation routines have to rounding errors. The required vector computation routines have
been optimized and placed within the "ttinterp.c" file. been optimized and placed within the "ttinterp.c" file.
- Fixed the parsing of accelerator tables in the PCF font driver
- Fixed the Type1 glyph loader routine used to compute the font's
maximum advance width.
II. NEW FEATURES II. NEW FEATURES

View File

@ -103,16 +103,20 @@
decoder.subrs = type1->subrs; decoder.subrs = type1->subrs;
decoder.subrs_len = type1->subrs_len; decoder.subrs_len = type1->subrs_len;
*max_advance = 0;
/* for each glyph, parse the glyph charstring and extract */ /* for each glyph, parse the glyph charstring and extract */
/* the advance width */ /* the advance width */
for ( glyph_index = 0; glyph_index < type1->num_glyphs; glyph_index++ ) for ( glyph_index = 0; glyph_index < type1->num_glyphs; glyph_index++ )
{ {
/* now get load the unscaled outline */ /* now get load the unscaled outline */
error = T1_Parse_Glyph( &decoder, glyph_index ); error = T1_Parse_Glyph( &decoder, glyph_index );
if ( glyph_index == 0 || decoder.builder.advance.x > *max_advance )
*max_advance = decoder.builder.advance.x;
/* ignore the error if one occured - skip to next glyph */ /* ignore the error if one occured - skip to next glyph */
} }
*max_advance = decoder.builder.advance.x;
return T1_Err_Ok; return T1_Err_Ok;
} }