-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[GDEF
] >64k expansion
#36
Comments
Humm. Leaving open without first milestone to eventually address the limits. |
This is not entirely true, because |
Eventually we should add a version 2.0 table with Offset24's, like GSUB/GPOS: #58 But this is not pressing. |
Note that the |
Implements harfbuzz/boring-expansion-spec#36 Subset does NOT lower format.
Speced: https://github.com/harfbuzz/boring-expansion-spec/blob/main/beyond-64k.md |
Of the
GDEF
fields:GlyphClassDef
is addressed by [GDEF
/GSUB
/GPOS
]Coverage
/ClassDef
tables >64k expansion #30.AttachmentList
should be marked deprecated.LigatureCaretList
allows specifying ligature carets for up to 64k glyphs, which are specified using a coverage table, which by way of [GDEF
/GSUB
/GPOS
]Coverage
/ClassDef
tables >64k expansion #30 allows glyph indices >64k; so this might be okay as long as fonts are limited to 64k ligature glyphs needing ligature carets.MarkAttachmentClass
is also addressed by [GDEF
/GSUB
/GPOS
]Coverage
/ClassDef
tables >64k expansion #30.MarkGlyphSets
allows specifying up to 64k different sets, specified as coverage objects, which by way of [GDEF
/GSUB
/GPOS
]Coverage
/ClassDef
tables >64k expansion #30 allow glyph indices >64k, and these are referenced via 32bit offsets so that's great. So as long as the entire font does not need more than 64k distinct sets we are good.ItemVariationStore
is extended separately as needed; it does not store glyph indices anyway; and the offset to it is 32bit (good).That is to say, there is no pressing work to be done here. Definitely nothing for first milestone.
The biggest pressure here is the 16bit offsets; the combined size of the various structures make it hard to fit them all within those offsets.
Fortunately,
MarkAttachmentClass
's use can be reduced by the compiler in favor ofMarkGlyphSets
. AndMarkGlyphSets
andItemVariationStore
already use 32bit offsets, so they can escape far away enough.LigatureCaretList
uses one layer of offset16's. So as long asGlyphClassDef
for the whole font can be built in about just under 64k, the table is buildable. That probably will become the most pressing point on how to order the glyph-order. But, again, workable for even a whole-unicode font.As such, no work to be done here for now. Yay!
The text was updated successfully, but these errors were encountered: