[interpolatable] Support avar2 in the .ttf codepath
This commit is contained in:
parent
d590feba99
commit
6a2a204cc3
@ -12,7 +12,7 @@ from typing import Any, Dict, List, MutableMapping, Optional, Tuple, Union, cast
|
|||||||
|
|
||||||
from fontTools.misc import etree as ET
|
from fontTools.misc import etree as ET
|
||||||
from fontTools.misc import plistlib
|
from fontTools.misc import plistlib
|
||||||
from fontTools.misc.loggingTools import LogMixin
|
from fontTools.misc.loggingTools import LogMixin, deprecateFunction
|
||||||
from fontTools.misc.textTools import tobytes, tostr
|
from fontTools.misc.textTools import tobytes, tostr
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -749,22 +749,27 @@ def main(args=None):
|
|||||||
if "gvar" in font:
|
if "gvar" in font:
|
||||||
# Is variable font
|
# Is variable font
|
||||||
|
|
||||||
axisMapping = {}
|
|
||||||
fvar = font["fvar"]
|
fvar = font["fvar"]
|
||||||
|
axisMapping = {}
|
||||||
for axis in fvar.axes:
|
for axis in fvar.axes:
|
||||||
axisMapping[axis.axisTag] = {
|
axisMapping[axis.axisTag] = {
|
||||||
-1: axis.minValue,
|
-1: axis.minValue,
|
||||||
0: axis.defaultValue,
|
0: axis.defaultValue,
|
||||||
1: axis.maxValue,
|
1: axis.maxValue,
|
||||||
}
|
}
|
||||||
|
normalized = False
|
||||||
if "avar" in font:
|
if "avar" in font:
|
||||||
avar = font["avar"]
|
avar = font["avar"]
|
||||||
for axisTag, segments in avar.segments.items():
|
if getattr(avar.table, "VarStore", None):
|
||||||
fvarMapping = axisMapping[axisTag].copy()
|
axisMapping = {tag: {-1: -1, 0: 0, 1: 1} for tag in axisMapping}
|
||||||
for location, value in segments.items():
|
normalized = True
|
||||||
axisMapping[axisTag][value] = piecewiseLinearMap(
|
else:
|
||||||
location, fvarMapping
|
for axisTag, segments in avar.segments.items():
|
||||||
)
|
fvarMapping = axisMapping[axisTag].copy()
|
||||||
|
for location, value in segments.items():
|
||||||
|
axisMapping[axisTag][value] = piecewiseLinearMap(
|
||||||
|
location, fvarMapping
|
||||||
|
)
|
||||||
|
|
||||||
gvar = font["gvar"]
|
gvar = font["gvar"]
|
||||||
glyf = font["glyf"]
|
glyf = font["glyf"]
|
||||||
@ -811,6 +816,8 @@ def main(args=None):
|
|||||||
)
|
)
|
||||||
+ "'"
|
+ "'"
|
||||||
)
|
)
|
||||||
|
if normalized:
|
||||||
|
name += " (normalized)"
|
||||||
names.append(name)
|
names.append(name)
|
||||||
fonts.append(glyphsets[locTuple])
|
fonts.append(glyphsets[locTuple])
|
||||||
locations.append(dict(locTuple))
|
locations.append(dict(locTuple))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user