You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The TrueType interpreter has a GETINFO instruction that allows the font to query information about the state and capabilities of the rasterizer. Of interest here is bit 18 which is described as follows:
Bit 18 is set to 1 if ClearType symmetric rendering is being used (for MS Rasterizer v.2.0 and later).
Depending on the horizontal LCD stripe orientation, this can impact the rendering of horizontal
features. It is set to 0 otherwise.
At some point in the Windows 10 era, the Calibri font (at least) was updated to query this bit and execute different instructions when enabled. As the note mentions, this does impact the rendering of horizontal features. Note the partially extended height of the top stem (rendered at 16px and zoomed 16x):
Skrifa currently produces the exact same output, but does better when that flag is disabled:
You can disable this in skrifa right now by enabling the preserve_linear_metrics setting but that can also affect horizontal rendering, so I propose that we add a new symmetric_rendering flag to control this directly, set to true by default to match FreeType.
It's conceivable that a supersampling rasterizer will handle this better (I assume ClearType does this when it sets this flag), but analytical area implementations do not.
Replaces the current HintingMode with a new HintingOptions type to support autohinting. Specifically, it allows for selecting the hinting engine (interpreter, auto or auto fallback). Also reintroduces a "light" mode to match FT_RENDER_MODE_LIGHT since this actually represents a different mode in the autohinter (but didn't for TrueType or CFF).
Adds the symmetric_rendering flag as well (closes#1080).
The TrueType interpreter has a GETINFO instruction that allows the font to query information about the state and capabilities of the rasterizer. Of interest here is bit 18 which is described as follows:
FreeType always sets this to true when hinting for an anti-aliased target.
At some point in the Windows 10 era, the Calibri font (at least) was updated to query this bit and execute different instructions when enabled. As the note mentions, this does impact the rendering of horizontal features. Note the partially extended height of the top stem (rendered at 16px and zoomed 16x):
Skrifa currently produces the exact same output, but does better when that flag is disabled:
You can disable this in skrifa right now by enabling the
preserve_linear_metrics
setting but that can also affect horizontal rendering, so I propose that we add a newsymmetric_rendering
flag to control this directly, set totrue
by default to match FreeType.It's conceivable that a supersampling rasterizer will handle this better (I assume ClearType does this when it sets this flag), but analytical area implementations do not.
cc @drott
The text was updated successfully, but these errors were encountered: