otTables: make DeltaSetIndexMap TTX dump less verbose by omitting no-op entries
though we still emit the empty <Map index=.../> elements; they help identify chunks of delta-set indices, and define the length of the array upon loading from XML
This commit is contained in:
parent
0cbdc8536b
commit
676a66fad3
@ -600,6 +600,11 @@ class Coverage(FormatSwitchingBaseTable):
|
|||||||
glyphs.append(attrs["value"])
|
glyphs.append(attrs["value"])
|
||||||
|
|
||||||
|
|
||||||
|
# The special 0xFFFFFFFF delta-set index is used to indicate that there
|
||||||
|
# is no variation data in the ItemVariationStore for a given variable field
|
||||||
|
NO_VARIATION_INDEX = 0xFFFFFFFF
|
||||||
|
|
||||||
|
|
||||||
class DeltaSetIndexMap(getFormatSwitchingBaseTableClass("uint8")):
|
class DeltaSetIndexMap(getFormatSwitchingBaseTableClass("uint8")):
|
||||||
|
|
||||||
def populateDefaults(self, propagator=None):
|
def populateDefaults(self, propagator=None):
|
||||||
@ -647,12 +652,19 @@ class DeltaSetIndexMap(getFormatSwitchingBaseTableClass("uint8")):
|
|||||||
return rawTable
|
return rawTable
|
||||||
|
|
||||||
def toXML2(self, xmlWriter, font):
|
def toXML2(self, xmlWriter, font):
|
||||||
|
# Make xml dump less verbose, by omitting no-op entries like:
|
||||||
|
# <Map index="..." outer="65535" inner="65535"/>
|
||||||
|
xmlWriter.comment(
|
||||||
|
"Omitted values default to 0xFFFF/0xFFFF (no variations)"
|
||||||
|
)
|
||||||
|
xmlWriter.newline()
|
||||||
for i, value in enumerate(getattr(self, "mapping", [])):
|
for i, value in enumerate(getattr(self, "mapping", [])):
|
||||||
attrs = (
|
attrs = [('index', i)]
|
||||||
('index', i),
|
if value != NO_VARIATION_INDEX:
|
||||||
|
attrs.extend([
|
||||||
('outer', value >> 16),
|
('outer', value >> 16),
|
||||||
('inner', value & 0xFFFF),
|
('inner', value & 0xFFFF),
|
||||||
)
|
])
|
||||||
xmlWriter.simpletag("Map", attrs)
|
xmlWriter.simpletag("Map", attrs)
|
||||||
xmlWriter.newline()
|
xmlWriter.newline()
|
||||||
|
|
||||||
@ -661,8 +673,8 @@ class DeltaSetIndexMap(getFormatSwitchingBaseTableClass("uint8")):
|
|||||||
if mapping is None:
|
if mapping is None:
|
||||||
self.mapping = mapping = []
|
self.mapping = mapping = []
|
||||||
index = safeEval(attrs['index'])
|
index = safeEval(attrs['index'])
|
||||||
outer = safeEval(attrs['outer'])
|
outer = safeEval(attrs.get('outer', '0xFFFF'))
|
||||||
inner = safeEval(attrs['inner'])
|
inner = safeEval(attrs.get('inner', '0xFFFF'))
|
||||||
assert inner <= 0xFFFF
|
assert inner <= 0xFFFF
|
||||||
mapping.insert(index, (outer << 16) | inner)
|
mapping.insert(index, (outer << 16) | inner)
|
||||||
|
|
||||||
|
@ -532,17 +532,18 @@ COLR_V1_XML = [
|
|||||||
|
|
||||||
COLR_V1_VAR_XML = [
|
COLR_V1_VAR_XML = [
|
||||||
'<VarIndexMap Format="0">',
|
'<VarIndexMap Format="0">',
|
||||||
' <Map index="0" outer="1" inner="1"/>',
|
' <!-- Omitted values default to 0xFFFF/0xFFFF (no variations) -->',
|
||||||
' <Map index="1" outer="1" inner="0"/>',
|
' <Map index="0" outer="1" inner="0"/>',
|
||||||
' <Map index="2" outer="1" inner="0"/>',
|
' <Map index="1"/>',
|
||||||
' <Map index="3" outer="1" inner="1"/>',
|
' <Map index="2"/>',
|
||||||
' <Map index="4" outer="1" inner="0"/>',
|
' <Map index="3" outer="1" inner="0"/>',
|
||||||
' <Map index="5" outer="1" inner="0"/>',
|
' <Map index="4"/>',
|
||||||
|
' <Map index="5"/>',
|
||||||
' <Map index="6" outer="0" inner="2"/>',
|
' <Map index="6" outer="0" inner="2"/>',
|
||||||
' <Map index="7" outer="0" inner="0"/>',
|
' <Map index="7" outer="0" inner="0"/>',
|
||||||
' <Map index="8" outer="0" inner="1"/>',
|
' <Map index="8" outer="0" inner="1"/>',
|
||||||
' <Map index="9" outer="1" inner="0"/>',
|
' <Map index="9"/>',
|
||||||
' <Map index="10" outer="1" inner="0"/>',
|
' <Map index="10"/>',
|
||||||
' <Map index="11" outer="0" inner="3"/>',
|
' <Map index="11" outer="0" inner="3"/>',
|
||||||
' <Map index="12" outer="0" inner="3"/>',
|
' <Map index="12" outer="0" inner="3"/>',
|
||||||
"</VarIndexMap>",
|
"</VarIndexMap>",
|
||||||
@ -571,12 +572,11 @@ COLR_V1_VAR_XML = [
|
|||||||
' <Item index="3" value="[500]"/>',
|
' <Item index="3" value="[500]"/>',
|
||||||
" </VarData>",
|
" </VarData>",
|
||||||
' <VarData index="1">',
|
' <VarData index="1">',
|
||||||
" <!-- ItemCount=2 -->",
|
" <!-- ItemCount=1 -->",
|
||||||
' <NumShorts value="32769"/>',
|
' <NumShorts value="32769"/>',
|
||||||
" <!-- VarRegionCount=1 -->",
|
" <!-- VarRegionCount=1 -->",
|
||||||
' <VarRegionIndex index="0" value="0"/>',
|
' <VarRegionIndex index="0" value="0"/>',
|
||||||
' <Item index="0" value="[0]"/>',
|
' <Item index="0" value="[65536]"/>',
|
||||||
' <Item index="1" value="[65536]"/>',
|
|
||||||
" </VarData>",
|
" </VarData>",
|
||||||
"</VarStore>",
|
"</VarStore>",
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user