Overview of the Supported OpenType Features in Viz Engine:

Features

Viz Engine Render Pipeline

Classic Render Pipeline

Text Shaping

The shaping is done by HarfBuzz library.

  • GSUB and GPOS and various other tables maybe used.

  • HarfBuzz default supported shaping features:

    • abvm, blwm, ccmp, locl, mark, mkmk and rlig

  • Additionally supported shaping features for horizontal text:

    • calt, clig, curs, dist, kern, liga and rclt

The result depends on multiple factors.

  • For non-complex text, shaping is done naively.

  • For complex Script text, Microsoft Windows Uniscribe API is used, which may produce different results on different versions of the operating system.

Bold, Italic and other styles

All font styles available in Graphic Hub are listed separately in the style selector in the Viz Artist UI.

  • Optionally, the custom Embolden and Shear effect can be applied as the outline effect, although the result may not be as satisfied to look as how the font designer intended.

  • The effect is limited to one per font per text, but users can save the preferred effect as a new Font Face object in the Graphic Hub and reuse it separately from the original design.

Each font style is imported as a separate font object in the Graphic Hub.
The classic text UI has an additional buttons for Bold and Italic, which:

  • Searches for the selected styles in the Graphic Hub and uses it (if any). There is no guarantee which one is chosen if multiple font objects of the same style are found.

  • If the search returns nothing, the selected styles are artificially mimicked.

Subscript and Superscript

Custom implementation. Font-provided subscript and superscript information is currently not supported.

Custom implementation.

Color Font
(Emoji)

Support OpenType CPAL and COLR version 0 with Razor render method.

  • COLR version 1 which has gradient color is currently not supported.

  • Other formats (SVG, sbix, CBDT/CBLC) are currently not supported.

No support.

Underline
(UnderlinePosition & UnderlineThickness)

Custom implementation. Font-provided underline information is currently not supported.

Underline information may be pulled from the post or CFF2 table.

Variable Font and Instances

Tables possibly used:

  • fvar, avar, cvar, gvar, MVAR, HVAR and VVAR

  • Instances (named presets) are regarded as different font styles and are created as separate objects in Graphic Hub when imported.

No support.

Line spacing
(Ascender, Descender & Line gap)

Only line spacing from OS/2 table is used.

  • If USE_TYPO_METRICS flag is set, sTypoAscender, sTypoDescender and sTypoLineGap are used to determine line spacing.

  • Otherwise usWinAscent and usWinDescent are used.

Line spacing information from hhea table being preferred over line spacing from any other table.