optimize CFF glyph loader (avoid apply identity font transform)
This commit is contained in:
parent
f0cd69c1b4
commit
552a956247
|
@ -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 !
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue