From d062c54ce7f2c2bb98906f866755d214c4a73735 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Mon, 18 Dec 2017 09:41:17 +0100 Subject: [PATCH] [truetype] Fix previous commit. * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Correctly handle unhinted phantom points, which must be properly scaled. --- ChangeLog | 7 +++++++ src/truetype/ttgload.c | 9 ++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 013216edc..9cdb5e531 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2017-12-18 Werner Lemberg + + [truetype] Fix previous commit. + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Correctly handle + unhinted phantom points, which must be properly scaled. + 2017-12-18 Werner Lemberg [truetype] Don't apply HVAR and VVAR deltas twice (#52683). diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c index 4b5af854d..01f2f26fe 100644 --- a/src/truetype/ttgload.c +++ b/src/truetype/ttgload.c @@ -801,7 +801,7 @@ { FT_TRACE1(( "TT_Hint_Glyph: too long instructions" )); FT_TRACE1(( " (0x%lx byte) is truncated\n", - loader->glyph->control_len )); + loader->glyph->control_len )); } n_ins = loader->glyph->control_len; @@ -1041,7 +1041,8 @@ #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT /* if we have a HVAR table, `pp1' and/or `pp2' are already adjusted */ - if ( !( loader->face->variation_support & TT_FACE_FLAG_VAR_HADVANCE ) ) + if ( !( loader->face->variation_support & TT_FACE_FLAG_VAR_HADVANCE ) || + !IS_HINTED( loader->load_flags ) ) #endif { loader->pp1 = outline->points[n_points - 4]; @@ -1050,7 +1051,8 @@ #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT /* if we have a VVAR table, `pp3' and/or `pp4' are already adjusted */ - if ( !( loader->face->variation_support & TT_FACE_FLAG_VAR_VADVANCE ) ) + if ( !( loader->face->variation_support & TT_FACE_FLAG_VAR_VADVANCE ) || + !IS_HINTED( loader->load_flags ) ) #endif { loader->pp3 = outline->points[n_points - 2]; @@ -1418,6 +1420,7 @@ TT_Driver driver = (TT_Driver)FT_FACE_DRIVER( loader->face ); #endif + #ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 ) {