Merge pull request #2082 from justvanrossum/gvar-ignore-empty-glyphs

[varLib] Interpret empty non-default glyphs as 'missing'
This commit is contained in:
Just van Rossum 2020-11-02 18:19:09 +01:00 committed by GitHub
commit 0ae6951b3b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -220,6 +220,7 @@ def _add_gvar(font, masterModel, master_ttfs, tolerance=0.5, optimize=True):
assert "gvar" not in font
gvar = font["gvar"] = newTable('gvar')
glyf = font['glyf']
defaultMasterIndex = masterModel.reverseMapping[0]
# use hhea.ascent of base master as default vertical origin when vmtx is missing
baseAscent = font['hhea'].ascent
@ -231,6 +232,15 @@ def _add_gvar(font, masterModel, master_ttfs, tolerance=0.5, optimize=True):
m["glyf"].getCoordinatesAndControls(glyph, m, defaultVerticalOrigin=baseAscent)
for m in master_ttfs
]
if allData[defaultMasterIndex][1].numberOfContours != 0:
# If the default master is not empty, interpret empty non-default masters
# as missing glyphs from a sparse master
allData = [
d if d is not None and d[1].numberOfContours != 0 else None
for d in allData
]
model, allData = masterModel.getSubModel(allData)
allCoords = [d[0] for d in allData]