diff options
Diffstat (limited to 'src/cff/cf2font.c')
-rw-r--r-- | src/cff/cf2font.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/cff/cf2font.c b/src/cff/cf2font.c index 718d1e2..6e99dc2 100644 --- a/src/cff/cf2font.c +++ b/src/cff/cf2font.c @@ -4,7 +4,7 @@ /* */ /* Adobe's code for font instances (body). */ /* */ -/* Copyright 2007-2013 Adobe Systems Incorporated. */ +/* Copyright 2007-2014 Adobe Systems Incorporated. */ /* */ /* This software, and all works of authorship, whether in source or */ /* object code form as indicated by the copyright notice(s) included */ @@ -167,7 +167,7 @@ if ( !xdelta ) goto Try_x3; - *darkenAmount = FT_MulFix( x, FT_DivFix( ydelta, xdelta ) ) + + *darkenAmount = FT_MulDiv( x, ydelta, xdelta ) + FT_DivFix( cf2_intToFixed( y1 ), ppem ); } @@ -184,7 +184,7 @@ if ( !xdelta ) goto Try_x4; - *darkenAmount = FT_MulFix( x, FT_DivFix( ydelta, xdelta ) ) + + *darkenAmount = FT_MulDiv( x, ydelta, xdelta ) + FT_DivFix( cf2_intToFixed( y2 ), ppem ); } } @@ -202,7 +202,7 @@ if ( !xdelta ) goto Use_y4; - *darkenAmount = FT_MulFix( x, FT_DivFix( ydelta, xdelta ) ) + + *darkenAmount = FT_MulDiv( x, ydelta, xdelta ) + FT_DivFix( cf2_intToFixed( y3 ), ppem ); } } @@ -233,13 +233,14 @@ /* pointer to parsed font object */ CFF_Decoder* decoder = font->decoder; - FT_Bool needExtraSetup; + FT_Bool needExtraSetup = FALSE; /* character space units */ CF2_Fixed boldenX = font->syntheticEmboldeningAmountX; CF2_Fixed boldenY = font->syntheticEmboldeningAmountY; - CF2_Fixed ppem; + CFF_SubFont subFont; + CF2_Fixed ppem; /* clear previous error */ @@ -247,8 +248,12 @@ /* if a CID fontDict has changed, we need to recompute some cached */ /* data */ - needExtraSetup = - (FT_Bool)( font->lastSubfont != cf2_getSubfont( decoder ) ); + subFont = cf2_getSubfont( decoder ); + if ( font->lastSubfont != subFont ) + { + font->lastSubfont = subFont; + needExtraSetup = TRUE; + } /* if ppem has changed, we need to recompute some cached data */ /* note: because of CID font matrix concatenation, ppem and transform */ |