[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 plistlib
|
||||
from fontTools.misc.loggingTools import LogMixin
|
||||
from fontTools.misc.loggingTools import LogMixin, deprecateFunction
|
||||
from fontTools.misc.textTools import tobytes, tostr
|
||||
|
||||
"""
|
||||
|
@ -749,22 +749,27 @@ def main(args=None):
|
||||
if "gvar" in font:
|
||||
# Is variable font
|
||||
|
||||
axisMapping = {}
|
||||
fvar = font["fvar"]
|
||||
axisMapping = {}
|
||||
for axis in fvar.axes:
|
||||
axisMapping[axis.axisTag] = {
|
||||
-1: axis.minValue,
|
||||
0: axis.defaultValue,
|
||||
1: axis.maxValue,
|
||||
}
|
||||
normalized = False
|
||||
if "avar" in font:
|
||||
avar = font["avar"]
|
||||
for axisTag, segments in avar.segments.items():
|
||||
fvarMapping = axisMapping[axisTag].copy()
|
||||
for location, value in segments.items():
|
||||
axisMapping[axisTag][value] = piecewiseLinearMap(
|
||||
location, fvarMapping
|
||||
)
|
||||
if getattr(avar.table, "VarStore", None):
|
||||
axisMapping = {tag: {-1: -1, 0: 0, 1: 1} for tag in axisMapping}
|
||||
normalized = True
|
||||
else:
|
||||
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"]
|
||||
glyf = font["glyf"]
|
||||
@ -811,6 +816,8 @@ def main(args=None):
|
||||
)
|
||||
+ "'"
|
||||
)
|
||||
if normalized:
|
||||
name += " (normalized)"
|
||||
names.append(name)
|
||||
fonts.append(glyphsets[locTuple])
|
||||
locations.append(dict(locTuple))
|
||||
|
Loading…
x
Reference in New Issue
Block a user