summaryrefslogtreecommitdiff
path: root/misc/fontbuildlib/stat.py
diff options
context:
space:
mode:
authorRasmus Andersson <rasmus@notion.se>2020-08-19 03:57:25 +0300
committerRasmus Andersson <rasmus@notion.se>2020-08-19 03:57:25 +0300
commitd76268cf8d778c709ce2e714a36e17d0d23effa9 (patch)
tree0f0a31da1ce5aba1ef64af37660a54ca0c06e4bb /misc/fontbuildlib/stat.py
parentcb3d2853b9234b2764124cbc6113f779d419331e (diff)
downloadinter-d76268cf8d778c709ce2e714a36e17d0d23effa9.tar.xz
tooling: upgrade libs, rename VF fext otf -> ttf, add STAT table patch
- upgrades 3rd party libraries used by the toolchain - upgrades fontbuild code to adjust changes to library APIs - renames VF font filename extensions to .ttf - adds better STAT table patch to improve metadata on Windows
Diffstat (limited to 'misc/fontbuildlib/stat.py')
-rw-r--r--misc/fontbuildlib/stat.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/misc/fontbuildlib/stat.py b/misc/fontbuildlib/stat.py
new file mode 100644
index 000000000..9ba28300c
--- /dev/null
+++ b/misc/fontbuildlib/stat.py
@@ -0,0 +1,34 @@
+# from fontTools.designspaceLib import DesignSpaceDocument
+# from fontTools.ttLib.tables import otTables as ot
+# from fontTools.ttLib import ttFont
+from fontTools.otlLib.builder import buildStatTable
+
+def rebuildStatTable(font, designspace):
+ if not 'fvar' in font:
+ raise Exception('missing fvar table in font')
+
+ axes = [dict(tag=a.axisTag, name=a.axisNameID) for a in font['fvar'].axes]
+ # axes = []
+ # for a in statTable.DesignAxisRecord.Axis:
+ # axes.append({ 'tag': a.AxisTag, 'name': a.AxisNameID, 'ordering': a.AxisOrdering })
+
+ axisNameToTag = dict()
+ for axis in designspace.axes:
+ axisNameToTag[axis.name] = axis.tag
+
+ locations = []
+ for instance in designspace.instances:
+ location = dict()
+ for axisName, value in instance.location.items():
+ tag = axisNameToTag[axisName]
+ location[tag] = value
+ locations.append({ 'name': instance.styleName, 'location': location })
+
+ buildStatTable(font, axes, locations)
+
+
+# font = ttFont.TTFont("build/fonts/var/Inter.var.ttf")
+# designspace = DesignSpaceDocument.fromfile('build/ufo/inter.designspace')
+# rebuildStatTable(font, designspace)
+# print("write build/tmp/Inter.var-patched.ttf")
+# font.save("build/tmp/Inter.var-patched.ttf")