Added code to correctly scale global metrics

This commit is contained in:
David Turner 2000-06-07 20:05:50 +00:00
parent 803a3fdf89
commit de6523ee05
1 changed files with 19 additions and 1 deletions

View File

@ -101,7 +101,25 @@
LOCAL_FUNC
FT_Error T1_Reset_Size( T1_Size size )
{
UNUSED(size);
/* recompute ascender, descender, etc.. */
CID_Face face = (CID_Face)size->root.face;
FT_Size_Metrics* metrics = &size->root.metrics;
if ( metrics->x_ppem < 1 || metrics->y_ppem < 1 )
return FT_Err_Invalid_Argument;
/* Compute root ascender, descender, test height, and max_advance */
metrics->ascender = ( FT_MulFix( face->root.ascender,
metrics->y_scale ) + 32 ) & -64;
metrics->descender = ( FT_MulFix( face->root.descender,
metrics->y_scale ) + 32 ) & -64;
metrics->height = ( FT_MulFix( face->root.height,
metrics->y_scale ) + 32 ) & -64;
metrics->max_advance = ( FT_MulFix( face->root.max_advance_width,
metrics->x_scale ) + 32 ) & -64;
return 0;
}