boring-expansion-spec
boring-expansion-spec copied to clipboard
[`JSTF`] beyond-64k extension
As discussed on the MPEG list.
I propose bumping the minor version:
Type | Name | Description
-- | -- | --
uint16 | majorVersion | Major version of the JSTF table, = 1
uint16 | minorVersion | Minor version of the JSTF table, = 1
uint16 | jstfScriptCount | Number of JstfScriptRecords in this table
JstfScriptRecord | jstfScriptRecords[jstfScriptCount] | Array of JstfScriptRecords, in alphabetical order by jstfScriptTag
uint16 | jstfScriptCount2 | Number of JstfScriptRecords2 in this table
JstfScriptRecord2 | jstfScriptRecords2[jstfScriptCount2] | Array of JstfScriptRecords2, in alphabetical order by jstfScriptTag
With JstfScriptRecord2
:
Type | Name | Description
-- | -- | --
Tag | jstfScriptTag | 4-byte JstfScript identification
Offset32 | jstfScript2Offset | Offset to JstfScript2 table, from beginning of JSTF Header
And JstfScript2
:
Type | Name | Description
-- | -- | --
Offset32 | extenderGlyph2Offset | Offset to ExtenderGlyph2 table, from beginning of JstfScript2 table (may be NULL)
Offset32 | defJstfLangSysOffset | Offset to default JstfLangSys table, from beginning of JstfScript2 table (may be NULL)
uint16 | jstfLangSysCount | Number of JstfLangSysRecords in this table- may be zero (0)
JstfLangSysRecord | jstfLangSysRecords[jstfLangSysCount] | Array of JstfLangSysRecords, in alphabetical order by JstfLangSysTag
And ExtenderGlyph2
:
Type | Name | Description
-- | -- | --
uint24 | glyphCount | Number of extender glyphs in this script
uint24 | extenderGlyphs[glyphCount] | Extender glyph IDs — in increasing numerical order
It is good design to make a hybrid font by single JSTF table. The contents in jstfScriptRecord and jstfScriptRecord2 can overlap? Or they shall be exclusive?
It is good design to make a hybrid font by single JSTF table. The contents in jstfScriptRecord and jstfScriptRecord2 can overlap? Or they shall be exclusive?
The way we did in GSUB/GPOS is that if the system understands jstfScriptRecord2
, then the other one is ignored.