OpenType Test Framework
This is an experimental test framework for rendering text with OpenType fonts. You are advised that the current BabelMap implementation of OpenType features is incomplete, and may contain bugs. It is possible that rendering some text strings with some fonts may take an unexpectedly long time, or even cause BabelMap to freeze or crash in some cases.
Note that the first time that a particular font is used, it may take a few seconds to display the text string as BabelMap needs to load and parse the OpenType features for the font.
Supported Features
At present, only the following OpenType features are supported, and applied automatically.
- abvm (above-base mark positioning)
- abvs (above-base substitutions)
- blwm (below-base mark positioning)
- blws (below-base substitutions)
- calt (contextual alternates)
- ccmp (glyph composition/decomposition)
- dist (distances)
- kern (kerning)
- mark (mark positioning)
- mkmk (mark to mark positioning)
- pres (pre-base substitutions)
- psts (post-base substitutions)
- rlig (required ligatures)
Supported GSUB Lookup Tables
The following GSUB lookup tables are supported. At present LookupType 8 (Reverse Chaining Contextual Single Substitution Subtable) is not yet supported. LookupType 3 (Alternate Substitution Subtable) is implemented, but is not currently applied as the test framework does not yet have a mechanism to allow user-selection of alternate glyphs. LookupType 2 (Multiple Substitution Subtable) is only supported in this test framework, and is not supported elsewhere in BabelMap.
Supported GPOS Lookup Tables
The following GPOS lookup tables are supported. At present LookupType 3 (Cursive Attachment Positioning Subtable) and LookupType 5 (Mark-to-Ligature Attachment Positioning Subtable) are not yet supported. LookupType 4 (Mark-to-Base Attachment Positioning Subtable) and LookupType 6 (Mark-to-Mark Attachment Positioning Subtable) are not fully implemented, so positionings may not always work as expected.
- LookupType 1: Single Adjustment Positioning Subtable (Formats 1 and 2)
- LookupType 2: Pair Adjustment Positioning Subtable (Formats 1 and 2)
- LookupType 4: Mark-to-Base Attachment Positioning Subtable
- LookupType 6: Mark-to-Mark Attachment Positioning Subtable
- LookupType 7: Contextual Positioning Subtables (Formats 1, 2, and 3)
- LookupType 8: Chained Contexts Positioning Subtable (Formats 1, 2, and 3)
- LookupType 9: Extension Positioning
OpenType Test dialog box
Font Settings
- Font : Select the font to use for rendering the input text.
- Size : Select the font size to use (2 to 120 points).
- Bold : Check to use bold styling.
- Italic : Check to use italic styling.
- Colour : Check to render the input text in colour if the font has COLR/CPAL tables.
Colours
- Background : Select the colour to use for the background of the text output area (default white).
- Foreground : Select the colour to use for the text in the text output area (default black). This is not used for colour glyphs in COLR/CPAL fonts if the "Colour" option has been checked in the Font Setting section.
- Edit box : Type or paste the text to be rendered into the edit box. The input box accepts any Unicode characters.
- Clear : Press the "Clear" button to clear the contents of the input text edit box.
- Glyph IDs : Check the "Glyph IDs" button in order to use glyph IDs instead of Unicode characters. Checking the "Glyph IDs" button will clear the edit box, and allow you to type or paste a space-separated string of glyph IDs into the edit box (e.g. "45 769 23"). The interpretation of the glyph ID depends upon the selected font.
Rendered Text
- Left-to-Right / Right-to-Left : Check the appropriate radio button in order to render the text in left-to-right or right-to-left layout (default left-to-right).
- Centre Text : Check this button to centre the text in the text output area. If not checked, the text will be left-aligned if the Left-to-Right button in checked, or right-aligned if the Right-to-Left button is checked..
- Composite Glyphs : Check this button to render composite glyphs using the BabelMap rendering system. The BabelMap implementation of composite glyphs is currently incomplete, and some composite glyphs may not render correctly, so it is disabled by default. If the "Composite Glyphs" button is unchecked then composite glyphs will be rendered using the Windows rendering engine. Composite glyph decompositions will only be shown in the rendering log if the "Composite Glyphs" button is checked.
- Step through rendering steps : Check this button to step through each stage in the rendering process for the input string by moving the pointer from left to right. Each GSUB or GPOS operation is a separate step.
Input and Output
- Input : This lists the hexadecimal scalar character values of the input text.
- Output : This lists the corresponding output glyph IDs. Colour glyph and composite glyph decompositions are braced together (e.g. {134 563 24}).
Rendering Log
The Rendering Log lists the details of all rendering operations carried out on the input text, including details of all GSUB or GPOS features that have been applied.
- Copy Log : Copies the Rendering Log to the clipboard.
- Copy GSUB Details : Copies a text representation of the GSUB tables in the selected font to the clipboard.
- Copy GSUB Details : Copies a text representation of the GPOS tables in the selected font to the clipboard.
- ? : Opens this help page in the default browser.
- Close : Closes the OpenType Test window.
Download | Help Contents