* src/autohint/ahhint.c (ah_hinter_load_glyph): Don't scale

y_scale locally but face->size->metrics.y_scale.
This commit is contained in:
Werner Lemberg 2003-05-19 21:42:08 +00:00
parent c98501b042
commit 11367bcce7
2 changed files with 15 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2003-05-19 David Chester <davidchester@qmx.net>
* src/autohint/ahhint.c (ah_hinter_load_glyph): Don't scale
y_scale locally but face->size->metrics.y_scale.
2003-05-19 David Turner <david@freetype.org> 2003-05-19 David Turner <david@freetype.org>
* src/sfnt/ttcmap0.c (tt_cmap4_char_next): Select proper start * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Select proper start

View File

@ -1743,25 +1743,27 @@
*/ */
{ {
AH_Globals design = &face_globals->design; AH_Globals design = &face_globals->design;
FT_Pos shoot = design->blue_shoots[ AH_BLUE_SMALL_TOP ]; FT_Pos shoot = design->blue_shoots[AH_BLUE_SMALL_TOP];
/* the value of 'shoot' will be -1000 if the font doesn't have */
/* small latin letters; we simply check the sign here... */ /* the value of 'shoot' will be -1000 if the font doesn't have */
/* small latin letters; we simply check the sign here... */
if ( shoot > 0 ) if ( shoot > 0 )
{ {
FT_Pos scaled = FT_MulFix( shoot, y_scale ); FT_Pos scaled = FT_MulFix( shoot, y_scale );
FT_Pos fitted = ( scaled + 32 ) & -64; FT_Pos fitted = ( scaled + 32 ) & -64;
if ( scaled != fitted ) if ( scaled != fitted )
{ {
/* adjust y_scale /* adjust y_scale
*/ */
y_scale = FT_MulDiv( y_scale, fitted, scaled ); face->size->metrics.y_scale = FT_MulDiv( y_scale, fitted, scaled );
/* adust x_scale /* adust x_scale
*/ */
if ( fitted < scaled ) if ( fitted < scaled )
x_scale -= x_scale/50; /* x_scale*0.98 with integers */ face->size->metrics.x_scale -= x_scale/50; /* x_scale*0.98 */
} }
} }
} }
@ -1772,7 +1774,9 @@
/* need to rescale the global metrics */ /* need to rescale the global metrics */
if ( face_globals->x_scale != x_scale || if ( face_globals->x_scale != x_scale ||
face_globals->y_scale != y_scale ) face_globals->y_scale != y_scale )
ah_hinter_scale_globals( hinter, x_scale, y_scale ); ah_hinter_scale_globals( hinter,
face->size->metrics.x_scale,
face->size->metrics.y_scale );
ah_loader_rewind( hinter->loader ); ah_loader_rewind( hinter->loader );