Delta-set indices are obtained based on the glyph ID. If there is no delta-set index mapping table for advance widths, then glyph IDs implicitly provide the indices: for a given glyph ID, the delta-set outer-level index is zero, and the glyph ID is the delta-set inner-level index.
If delta-set index mappings are provided, the outer- and inner-level indices are combined in a packed format that uses one to four bytes for each mapping entry. Each mapping table provides information describing the packed format; this is used to extract the separate outer- and inner-level indices.
The first paragraph is rather unclear. What does it mean "if there is no delta-set index mapping table for advance widths"? Is this the situation when the offset to the delta-set index mapping table is invalid? When the mapCount is zero? Both? When the mapCount is invalid (e.g. larger than the number of glyphs)? Something else?
Then in the second paragraph the spec talks about "delta-set index mappings", which should be the entries (records) in the "delta-set index mapping table"? But the way it's worded, the specs seems to seems to suggest that "delta-set index mapping table" and "delta-set index mappings" are the same thing. Regardless of what the specs says or implies, the same questions can be asked: When are "delta-set index mappings" provided? When the offset to the delta-set index mapping table is valid? When the mapCount is positive? What if mapCount is invalid, e.g. larger than the number of glyphs? In this situation the "delta-set index mapping table" arel provided?
As you can see many questions can be asked but there is no clear and definitive answer.
I think this rather important situation needs to be described using a much more precise technical language, so it's 100% clear when glyph IDs implicitly provide the indices.
Document Details
⚠Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.
ID: c1c96354-aa2b-a547-3ca7-e7f1c23527c5
Version Independent ID: ae774190-6fd6-cd3a-2ae9-42856b6d533a
What does it mean "if there is no delta-set index mapping table for advance widths"? Is this the situation when the offset to the delta-set index mapping table is invalid? When the mapCount is zero?
The only case in which there is no mapping table would be if the advanceWidthMappingOffset is null. If that offset is not NULL, then there is a mapping table.
On this page:
https://docs.microsoft.com/en-us/typography/opentype/spec/hvar
under "Processing" The spec says:
Delta-set indices are obtained based on the glyph ID. If there is no delta-set index mapping table for advance widths, then glyph IDs implicitly provide the indices: for a given glyph ID, the delta-set outer-level index is zero, and the glyph ID is the delta-set inner-level index.
If delta-set index mappings are provided, the outer- and inner-level indices are combined in a packed format that uses one to four bytes for each mapping entry. Each mapping table provides information describing the packed format; this is used to extract the separate outer- and inner-level indices.
The first paragraph is rather unclear. What does it mean "if there is no delta-set index mapping table for advance widths"? Is this the situation when the offset to the delta-set index mapping table is invalid? When the mapCount is zero? Both? When the mapCount is invalid (e.g. larger than the number of glyphs)? Something else?
Then in the second paragraph the spec talks about "delta-set index mappings", which should be the entries (records) in the "delta-set index mapping table"? But the way it's worded, the specs seems to seems to suggest that "delta-set index mapping table" and "delta-set index mappings" are the same thing. Regardless of what the specs says or implies, the same questions can be asked: When are "delta-set index mappings" provided? When the offset to the delta-set index mapping table is valid? When the mapCount is positive? What if mapCount is invalid, e.g. larger than the number of glyphs? In this situation the "delta-set index mapping table" arel provided?
As you can see many questions can be asked but there is no clear and definitive answer.
I think this rather important situation needs to be described using a much more precise technical language, so it's 100% clear when glyph IDs implicitly provide the indices.
Document Details
The text was updated successfully, but these errors were encountered: