[truetype] Honor FT_LOAD_ADVANCE_ONLY if `hdmx` is usable.
This simply shortcuts the glyph loading if FT_LOAD_ADVANCE_ONLY is specified by FT_Get_Advances and the `hdmx` data are located. Particularly, the classic v35 interpreter or "verified" ClearType fonts might see 100x speed up in retrieving the hdmx cache. * src/truetype/ttgload.c (TT_Load_Glyph): Insert the shortcut.
This commit is contained in:
parent
6c831d658f
commit
a8ef33e3ae
|
@ -2945,6 +2945,15 @@
|
||||||
if ( error )
|
if ( error )
|
||||||
goto Exit;
|
goto Exit;
|
||||||
|
|
||||||
|
/* done if we are only interested in the `hdmx` advance */
|
||||||
|
if ( load_flags & FT_LOAD_ADVANCE_ONLY &&
|
||||||
|
!( load_flags & FT_LOAD_VERTICAL_LAYOUT ) &&
|
||||||
|
loader.widthp )
|
||||||
|
{
|
||||||
|
glyph->metrics.horiAdvance = loader.widthp[glyph_index] * 64;
|
||||||
|
goto Done;
|
||||||
|
}
|
||||||
|
|
||||||
glyph->format = FT_GLYPH_FORMAT_OUTLINE;
|
glyph->format = FT_GLYPH_FORMAT_OUTLINE;
|
||||||
glyph->num_subglyphs = 0;
|
glyph->num_subglyphs = 0;
|
||||||
glyph->outline.flags = 0;
|
glyph->outline.flags = 0;
|
||||||
|
@ -3023,6 +3032,7 @@
|
||||||
glyph->outline.n_points,
|
glyph->outline.n_points,
|
||||||
glyph->outline.flags ));
|
glyph->outline.flags ));
|
||||||
|
|
||||||
|
Done:
|
||||||
tt_loader_done( &loader );
|
tt_loader_done( &loader );
|
||||||
|
|
||||||
Exit:
|
Exit:
|
||||||
|
|
Loading…
Reference in New Issue