optimize CFF glyph loader (avoid apply identity font transform)

This commit is contained in:
David Turner 2007-05-28 15:45:35 +00:00
parent f0cd69c1b4
commit 552a956247
2 changed files with 14 additions and 4 deletions

View File

@ -1,5 +1,9 @@
2007-05-28 David Turner <david@freetype.org>
* src/cff/cffgload.c: do not apply the font transform to loaded glyph
if it is the identity. this cuts a significant percent of CFF glyph
loading time
* src/autofit/afglobal.c: change default hinting script to
CJK, since it works well with a larger array of scripts. thanks to
"Rahul Bhalerao" <b.rahul.pm@gmail.com> for pointing this out !

View File

@ -2281,6 +2281,7 @@
FT_Bool hinting;
CFF_Font cff = (CFF_Font)face->extra.data;
FT_Bool use_font_matrix;
FT_Matrix font_matrix;
FT_Vector font_offset;
@ -2547,11 +2548,16 @@
glyph->root.outline.flags |= FT_OUTLINE_REVERSE_FILL;
/* apply the font matrix */
FT_Outline_Transform( &glyph->root.outline, &font_matrix );
if ( font_matrix.xx != 0x10000 && font_matrix.yy != 0x10000 &&
font_matrix.xy != 0 && font_matrix.yx != 0 )
{
FT_Outline_Transform( &glyph->root.outline, &font_matrix );
}
FT_Outline_Translate( &glyph->root.outline,
font_offset.x,
font_offset.y );
if ( font_offset.x != 0 || font_offset.y != 0 )
FT_Outline_Translate( &glyph->root.outline,
font_offset.x,
font_offset.y );
advance.x = metrics->horiAdvance;
advance.y = 0;