[truetype] Reduce Infinality footprint again.
* src/truetype/ttgload.c (compute_glyph_metrics): Streamline and prioritize the Infinality checks to use `hdmx`.
This commit is contained in:
parent
1f95189875
commit
012b00f3e6
|
@ -2262,14 +2262,20 @@
|
||||||
/* unless FT_LOAD_COMPUTE_METRICS is set or backward compatibility */
|
/* unless FT_LOAD_COMPUTE_METRICS is set or backward compatibility */
|
||||||
/* mode of the v40 interpreter is active. See `ttinterp.h' for */
|
/* mode of the v40 interpreter is active. See `ttinterp.h' for */
|
||||||
/* details on backward compatibility mode. */
|
/* details on backward compatibility mode. */
|
||||||
if (
|
if ( IS_HINTED( loader->load_flags ) &&
|
||||||
|
!( loader->load_flags & FT_LOAD_COMPUTE_METRICS ) &&
|
||||||
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
|
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
|
||||||
!( driver->interpreter_version == TT_INTERPRETER_VERSION_40 &&
|
!( driver->interpreter_version == TT_INTERPRETER_VERSION_40 &&
|
||||||
( loader->exec && loader->exec->backward_compatibility ) ) &&
|
( loader->exec && loader->exec->backward_compatibility ) ) &&
|
||||||
#endif
|
#endif
|
||||||
!face->postscript.isFixedPitch &&
|
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
|
||||||
IS_HINTED( loader->load_flags ) &&
|
!( driver->interpreter_version == TT_INTERPRETER_VERSION_38 &&
|
||||||
!( loader->load_flags & FT_LOAD_COMPUTE_METRICS ) )
|
!SPH_OPTION_BITMAP_WIDTHS &&
|
||||||
|
FT_LOAD_TARGET_MODE( loader->load_flags ) !=
|
||||||
|
FT_RENDER_MODE_MONO &&
|
||||||
|
( loader->exec && !loader->exec->compatible_widths ) ) &&
|
||||||
|
#endif
|
||||||
|
!face->postscript.isFixedPitch )
|
||||||
{
|
{
|
||||||
FT_Byte* widthp;
|
FT_Byte* widthp;
|
||||||
|
|
||||||
|
@ -2278,31 +2284,9 @@
|
||||||
size->metrics->x_ppem,
|
size->metrics->x_ppem,
|
||||||
glyph_index );
|
glyph_index );
|
||||||
|
|
||||||
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
|
|
||||||
|
|
||||||
if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 )
|
|
||||||
{
|
|
||||||
FT_Bool ignore_x_mode;
|
|
||||||
|
|
||||||
|
|
||||||
ignore_x_mode = FT_BOOL( FT_LOAD_TARGET_MODE( loader->load_flags ) !=
|
|
||||||
FT_RENDER_MODE_MONO );
|
|
||||||
|
|
||||||
if ( widthp &&
|
|
||||||
( ( ignore_x_mode && loader->exec->compatible_widths ) ||
|
|
||||||
!ignore_x_mode ||
|
|
||||||
SPH_OPTION_BITMAP_WIDTHS ) )
|
|
||||||
glyph->metrics.horiAdvance = *widthp * 64;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
|
|
||||||
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
|
|
||||||
|
|
||||||
{
|
|
||||||
if ( widthp )
|
if ( widthp )
|
||||||
glyph->metrics.horiAdvance = *widthp * 64;
|
glyph->metrics.horiAdvance = *widthp * 64;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* set glyph dimensions */
|
/* set glyph dimensions */
|
||||||
glyph->metrics.width = SUB_LONG( bbox.xMax, bbox.xMin );
|
glyph->metrics.width = SUB_LONG( bbox.xMax, bbox.xMin );
|
||||||
|
|
Loading…
Reference in New Issue