ref: cb23a62880203a19de2b41d4d80372bb5458dba2
parent: 294ce11b00f66a981007e43f0e6bc5c108ee2995
author: Dave Arnold <[email protected]>
date: Thu Jun 13 03:46:32 EDT 2013
[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.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2013-06-06 Dave Arnold <[email protected]>
+ Werner Lemberg <[email protected]>
+
+ [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 <[email protected]>.
Another try on pragmas.
@@ -8,7 +16,7 @@
* include/freetype/internal/ftserv.h: Remove pragma which has no
effect.
-2013-06-12 Werner Lemberg <[email protected]>.
+2013-06-12 Werner Lemberg <[email protected]>
* include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
--- 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 );
}
}