diff --git a/ChangeLog b/ChangeLog index 96b15281a..9dbab8e47 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2013-06-06 Dave Arnold + Werner Lemberg + + [cff] Add code to Adobe's engine to handle ppem > 2000. + + * src/cff/cffgload.c (cff_slot_load): If we get + FT_Err_Glyph_Too_Big, retry unhinted and scale up later on. + 2013-06-12 Werner Lemberg . Another try on pragmas. @@ -8,7 +16,7 @@ * include/freetype/internal/ftserv.h: Remove pragma which has no effect. -2013-06-12 Werner Lemberg . +2013-06-12 Werner Lemberg * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127. diff --git a/src/cff/cffgload.c b/src/cff/cffgload.c index 1904ca019..6a8494fa9 100644 --- a/src/cff/cffgload.c +++ b/src/cff/cffgload.c @@ -2849,7 +2849,16 @@ /* as a consequence, glyphs larger than 2000ppem get rejected */ if ( FT_ERR_EQ( error, Glyph_Too_Big ) ) { - /* XXX to be implemented */ + /* this time, we retry unhinted and scale up the glyph later on */ + /* (the engine uses and sets the hardcoded value 0x10000 / 64 = */ + /* 0x400 for both `x_scale' and `y_scale' in this case) */ + hinting = FALSE; + force_scaling = TRUE; + glyph->hint = hinting; + + error = cf2_decoder_parse_charstrings( &decoder, + charstring, + charstring_len ); } }