forked from minhngoc25a/freetype2
[truetype] Relocate subpixel flag setting.
`TT_RunIns` is too busy to deal with subpixel flags. It is better to set them in `tt_loader_init`, which is executed before each glyph program. * src/truetype/ttinterp.c (TT_RunIns): Move the flag setting from here... * src/truetype/ttgload.c (tt_loader_init): ... to here.
This commit is contained in:
parent
a35b081ebc
commit
7809007a5b
|
@ -2719,8 +2719,35 @@
|
||||||
/* note that this flag can also be modified in a glyph's bytecode */
|
/* note that this flag can also be modified in a glyph's bytecode */
|
||||||
if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 &&
|
if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 &&
|
||||||
exec->GS.instruct_control & 4 )
|
exec->GS.instruct_control & 4 )
|
||||||
exec->ignore_x_mode = 0;
|
exec->ignore_x_mode = FALSE;
|
||||||
#endif
|
|
||||||
|
exec->iup_called = FALSE;
|
||||||
|
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
|
||||||
|
|
||||||
|
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
|
||||||
|
/*
|
||||||
|
* Toggle backward compatibility according to what font wants, except
|
||||||
|
* when
|
||||||
|
*
|
||||||
|
* 1) we have a `tricky' font that heavily relies on the interpreter to
|
||||||
|
* render glyphs correctly, for example DFKai-SB, or
|
||||||
|
* 2) FT_RENDER_MODE_MONO (i.e, monochome rendering) is requested.
|
||||||
|
*
|
||||||
|
* In those cases, backward compatibility needs to be turned off to get
|
||||||
|
* correct rendering. The rendering is then completely up to the
|
||||||
|
* font's programming.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
if ( driver->interpreter_version == TT_INTERPRETER_VERSION_40 &&
|
||||||
|
subpixel_hinting_lean &&
|
||||||
|
!FT_IS_TRICKY( glyph->face ) )
|
||||||
|
exec->backward_compatibility = !( exec->GS.instruct_control & 4 );
|
||||||
|
else
|
||||||
|
exec->backward_compatibility = FALSE;
|
||||||
|
|
||||||
|
exec->iupx_called = FALSE;
|
||||||
|
exec->iupy_called = FALSE;
|
||||||
|
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL */
|
||||||
|
|
||||||
exec->pedantic_hinting = FT_BOOL( load_flags & FT_LOAD_PEDANTIC );
|
exec->pedantic_hinting = FT_BOOL( load_flags & FT_LOAD_PEDANTIC );
|
||||||
loader->exec = exec;
|
loader->exec = exec;
|
||||||
|
|
|
@ -7762,35 +7762,6 @@
|
||||||
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
|
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
|
||||||
|
|
||||||
|
|
||||||
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
|
|
||||||
exc->iup_called = FALSE;
|
|
||||||
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
|
|
||||||
|
|
||||||
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
|
|
||||||
/*
|
|
||||||
* Toggle backward compatibility according to what font wants, except
|
|
||||||
* when
|
|
||||||
*
|
|
||||||
* 1) we have a `tricky' font that heavily relies on the interpreter to
|
|
||||||
* render glyphs correctly, for example DFKai-SB, or
|
|
||||||
* 2) FT_RENDER_MODE_MONO (i.e, monochome rendering) is requested.
|
|
||||||
*
|
|
||||||
* In those cases, backward compatibility needs to be turned off to get
|
|
||||||
* correct rendering. The rendering is then completely up to the
|
|
||||||
* font's programming.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
if ( SUBPIXEL_HINTING_MINIMAL &&
|
|
||||||
exc->subpixel_hinting_lean &&
|
|
||||||
!FT_IS_TRICKY( &exc->face->root ) )
|
|
||||||
exc->backward_compatibility = !( exc->GS.instruct_control & 4 );
|
|
||||||
else
|
|
||||||
exc->backward_compatibility = FALSE;
|
|
||||||
|
|
||||||
exc->iupx_called = FALSE;
|
|
||||||
exc->iupy_called = FALSE;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* We restrict the number of twilight points to a reasonable, */
|
/* We restrict the number of twilight points to a reasonable, */
|
||||||
/* heuristic value to avoid slow execution of malformed bytecode. */
|
/* heuristic value to avoid slow execution of malformed bytecode. */
|
||||||
num_twilight_points = FT_MAX( 30,
|
num_twilight_points = FT_MAX( 30,
|
||||||
|
|
Loading…
Reference in New Issue