aboutsummaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2020-03-24 07:36:26 -0700
committerHaibo Huang <hhb@google.com>2020-03-24 07:36:26 -0700
commit20776dfb6cb01b99c75dd4b71ac8f16ec1fa5fb4 (patch)
tree156912128b4e7bf0c4486f70d132f497161ba984 /Lib
parent6a21284c82640276328e6aebbc94b1d8b80f3a3f (diff)
downloadfonttools-20776dfb6cb01b99c75dd4b71ac8f16ec1fa5fb4.tar.gz
Upgrade fonttools to 4.6.0
Test: None Change-Id: Iece9615bc8a0c3b4ec698f88387ac756e58935df
Diffstat (limited to 'Lib')
-rw-r--r--Lib/fontTools/__init__.py2
-rw-r--r--Lib/fontTools/ttLib/tables/C_P_A_L_.py4
-rw-r--r--Lib/fontTools/varLib/__init__.py18
-rw-r--r--Lib/fontTools/varLib/merger.py9
-rw-r--r--Lib/fonttools.egg-info/PKG-INFO19
-rw-r--r--Lib/fonttools.egg-info/SOURCES.txt4
6 files changed, 49 insertions, 7 deletions
diff --git a/Lib/fontTools/__init__.py b/Lib/fontTools/__init__.py
index 2246764f..ae13ccf1 100644
--- a/Lib/fontTools/__init__.py
+++ b/Lib/fontTools/__init__.py
@@ -4,6 +4,6 @@ from fontTools.misc.loggingTools import configLogger
log = logging.getLogger(__name__)
-version = __version__ = "4.5.0"
+version = __version__ = "4.6.0"
__all__ = ["version", "log", "configLogger"]
diff --git a/Lib/fontTools/ttLib/tables/C_P_A_L_.py b/Lib/fontTools/ttLib/tables/C_P_A_L_.py
index a7b4ad2b..22ef0623 100644
--- a/Lib/fontTools/ttLib/tables/C_P_A_L_.py
+++ b/Lib/fontTools/ttLib/tables/C_P_A_L_.py
@@ -255,3 +255,7 @@ class Color(namedtuple("Color", "blue green red alpha")):
blue = int(value[4:6], 16)
alpha = int(value[6:8], 16) if len (value) >= 8 else 0xFF
return cls(red=red, green=green, blue=blue, alpha=alpha)
+
+ @classmethod
+ def fromRGBA(cls, red, green, blue, alpha):
+ return cls(red=red, green=green, blue=blue, alpha=alpha)
diff --git a/Lib/fontTools/varLib/__init__.py b/Lib/fontTools/varLib/__init__.py
index 75a8c136..862decac 100644
--- a/Lib/fontTools/varLib/__init__.py
+++ b/Lib/fontTools/varLib/__init__.py
@@ -601,6 +601,22 @@ def _add_MVAR(font, masterModel, master_ttfs, axisTags):
mvar.ValueRecord = sorted(records, key=lambda r: r.ValueTag)
+def _add_BASE(font, masterModel, master_ttfs, axisTags):
+
+ log.info("Generating BASE")
+
+ merger = VariationMerger(masterModel, axisTags, font)
+ merger.mergeTables(font, master_ttfs, ['BASE'])
+ store = merger.store_builder.finish()
+
+ if not store.VarData:
+ return
+ base = font['BASE'].table
+ assert base.Version == 0x00010000
+ base.Version = 0x00010001
+ base.VarStore = store
+
+
def _merge_OTL(font, model, master_fonts, axisTags):
log.info("Merging OpenType Layout tables")
@@ -906,6 +922,8 @@ def build(designspace, master_finder=lambda s:s, exclude=[], optimize=True):
assert 0 == model.mapping[ds.base_idx]
log.info("Building variations tables")
+ if 'BASE' not in exclude and 'BASE' in vf:
+ _add_BASE(vf, model, master_fonts, axisTags)
if 'MVAR' not in exclude:
_add_MVAR(vf, model, master_fonts, axisTags)
if 'HVAR' not in exclude:
diff --git a/Lib/fontTools/varLib/merger.py b/Lib/fontTools/varLib/merger.py
index 3f04364f..b7fb39b4 100644
--- a/Lib/fontTools/varLib/merger.py
+++ b/Lib/fontTools/varLib/merger.py
@@ -1052,6 +1052,15 @@ def buildVarDevTable(store_builder, master_values):
base, varIdx = store_builder.storeMasters(master_values)
return base, builder.buildVarDevTable(varIdx)
+@VariationMerger.merger(ot.BaseCoord)
+def merge(merger, self, lst):
+ if self.Format != 1:
+ raise VarLibMergeError(f"BaseCoord format {self.Format} unsupported.")
+ self.Coordinate, DeviceTable = buildVarDevTable(merger.store_builder, [a.Coordinate for a in lst])
+ if DeviceTable:
+ self.Format = 3
+ self.DeviceTable = DeviceTable
+
@VariationMerger.merger(ot.CaretValue)
def merge(merger, self, lst):
if self.Format != 1:
diff --git a/Lib/fonttools.egg-info/PKG-INFO b/Lib/fonttools.egg-info/PKG-INFO
index 4c824f25..c02d7f8f 100644
--- a/Lib/fonttools.egg-info/PKG-INFO
+++ b/Lib/fonttools.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: fonttools
-Version: 4.5.0
+Version: 4.6.0
Summary: Tools to manipulate font files
Home-page: http://github.com/fonttools/fonttools
Author: Just van Rossum
@@ -414,6 +414,13 @@ Description: |Travis Build Status| |Appveyor Build status| |Coverage Status| |Py
Changelog
~~~~~~~~~
+ 4.6.0 (released 2020-03-24)
+ ---------------------------
+
+ - [varLib] Added support for building variable ``BASE`` table version 1.1 (#1858).
+ - [CPAL] Added ``fromRGBA`` method to ``Color`` class (#1861).
+
+
4.5.0 (released 2020-03-20)
---------------------------
@@ -2014,12 +2021,12 @@ Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
Requires-Python: >=3.6
Provides-Extra: plot
-Provides-Extra: woff
+Provides-Extra: graphite
Provides-Extra: symfont
-Provides-Extra: interpolatable
-Provides-Extra: ufo
+Provides-Extra: woff
Provides-Extra: unicode
-Provides-Extra: lxml
Provides-Extra: type1
-Provides-Extra: graphite
Provides-Extra: all
+Provides-Extra: interpolatable
+Provides-Extra: lxml
+Provides-Extra: ufo
diff --git a/Lib/fonttools.egg-info/SOURCES.txt b/Lib/fonttools.egg-info/SOURCES.txt
index 2bb456b0..5cf63c88 100644
--- a/Lib/fonttools.egg-info/SOURCES.txt
+++ b/Lib/fonttools.egg-info/SOURCES.txt
@@ -1467,6 +1467,7 @@ Tests/varLib/data/PartialInstancerTest-VF.ttx
Tests/varLib/data/PartialInstancerTest2-VF.ttx
Tests/varLib/data/SingleMaster.designspace
Tests/varLib/data/SparseMasters.designspace
+Tests/varLib/data/TestBASE.designspace
Tests/varLib/data/TestCFF2.designspace
Tests/varLib/data/TestCFF2Input.designspace
Tests/varLib/data/TestNonMarkingCFF2.designspace
@@ -1474,6 +1475,8 @@ Tests/varLib/data/TestSparseCFF2VF.designspace
Tests/varLib/data/TestVVAR.designspace
Tests/varLib/data/VarLibLocationTest.designspace
Tests/varLib/data/test_vpal.designspace
+Tests/varLib/data/master_base_test/TestBASE.0.ttx
+Tests/varLib/data/master_base_test/TestBASE.900.ttx
Tests/varLib/data/master_cff2/TestCFF2_Black.ttx
Tests/varLib/data/master_cff2/TestCFF2_ExtraLight.ttx
Tests/varLib/data/master_cff2/TestCFF2_Regular.ttx
@@ -1831,6 +1834,7 @@ Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,100.ttx
Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,62.5.ttx
Tests/varLib/data/test_results/SingleMaster.ttx
Tests/varLib/data/test_results/SparseMasters.ttx
+Tests/varLib/data/test_results/TestBASE.ttx
Tests/varLib/data/test_results/TestNonMarkingCFF2.ttx
Tests/varLib/data/test_results/TestSparseCFF2VF.ttx
Tests/varLib/data/test_results/TestVVAR.ttx