6387 Commits

Author SHA1 Message Date
Behdad Esfahbod
97df4a130c [symfont/momentsPen] Cythonize greenPen / momentsPen
Makes varLib.interpolatable 3x faster.
2022-07-28 15:35:51 -06:00
Behdad Esfahbod
22fd6f3eeb [momentsPen] Remove manual editions
Move OpenContourError to basePen.
2022-07-28 14:01:31 -06:00
Behdad Esfahbod
aa509b6df2 [varLib.interpolatable] Fix mix of space & tab 2022-07-28 14:01:15 -06:00
Behdad Esfahbod
5d9677038b [varLib.iup] Compile with Cython when available
Even with no annotations, makes it ~35% faster.
2022-07-28 12:35:02 -06:00
Just van Rossum
e4c5c842f1 Allow features to be added to VF without building GDEF; warn when GDEF would be needed but isn't requested. This fixes #2694 2022-07-20 11:28:29 +02:00
Cosimo Lupo
32aa8eafcb [otBase] fix AttributeError when uharfbuzz < 0.23.0 and 'repack' missing
Fixes #2671
2022-07-19 14:46:50 +02:00
Cosimo Lupo
dbe60eae80 [subset/svg] use broader ImportError instead of ModuleNotFoundError
Fixes https://github.com/fonttools/fonttools/issues/2696
2022-07-18 11:32:44 +02:00
Behdad Esfahbod
4139d8914a [statisticsPen] By default report all glyphs 2022-07-12 16:39:56 -06:00
Just van Rossum
6c6245e382 Add missing required argument. Fixes #2692 2022-07-12 13:52:17 -06:00
Just van Rossum
8c19828d7e
[varLib.merge] Fix for error during error reporting (#2689)
* work around error during error reporting, as reported in #2688

* Use stack[-1] (the table tag) as per feedback
2022-07-12 20:59:29 +02:00
Cosimo Lupo
02a669ed63 Bump version: 4.34.4 → 4.34.5.dev0 2022-07-07 23:38:32 +02:00
Cosimo Lupo
5af9db16b6 Release 4.34.4 2022-07-07 23:38:32 +02:00
Just van Rossum
1c8efee98d fix typo in COLR merge 2022-07-07 16:00:43 +02:00
Jany Belluz
ce89a0301f Bump version: 4.34.3 → 4.34.4.dev0 2022-07-07 13:59:20 +01:00
Jany Belluz
e80acefdd1 Release 4.34.3 2022-07-07 13:59:20 +01:00
Jany Belluz
b5f9499d2d [designspaceLib] Don't make up bad PS names when no STAT data
See GitHub issue: https://github.com/googlefonts/ufo2ft/issues/630
2022-07-07 11:56:51 +01:00
Cosimo Lupo
4d2e5351a7 Bump version: 4.34.2 → 4.34.3.dev0 2022-07-06 17:39:36 +01:00
Cosimo Lupo
73d10f8cd9 Release 4.34.2 2022-07-06 17:39:35 +01:00
Cosimo Lupo
a08140dc76 [varStore/subset] correctly handle NO_VARIATION_INDEX when subsetting varidxes
otherwise GDEF/GPOS.remap_device_varidxes may fail with KeyError attempting to map a NO_VARIATION_INDEX
2022-07-06 17:29:00 +01:00
Cosimo Lupo
1ec0ac4877 Bump version: 4.34.1 → 4.34.2.dev0 2022-07-06 16:53:57 +01:00
Cosimo Lupo
a216401867 Release 4.34.1 2022-07-06 16:53:57 +01:00
Cosimo Lupo
eab9aa5a22 instancer: use_NO_VARIATION_INDEX=False when optimizing {H,V}VAR VarStore
Same as we do in subsetter, see e01f643a8e
2022-07-06 16:36:05 +01:00
Cosimo Lupo
c011652101 Bump version: 4.34.0 → 4.34.1.dev0 2022-07-06 11:58:47 +01:00
Cosimo Lupo
78dee2bad5 Release 4.34.0 2022-07-06 11:58:46 +01:00
Cosimo Lupo
5ca57917c6 fix UFOFormatVersion tuple's __str__ in python 3.11
python 3.11 doesn't like when a mixin overrides a dunder method like __str__, for some reasons it keep using Enum.__str__, see
https://github.com/fonttools/fonttools/pull/2655
2022-07-06 11:13:55 +01:00
Nikolaus Waxweiler
ce38db6562
Merge pull request #2673 from daltonmaag/instancer-set-bits
Set RIBBI bits when cutting instances
2022-07-06 11:01:08 +01:00
Cosimo Lupo
2a07518b70
Merge pull request #2660 from fonttools/variable-colr
[varLib] add support for building variable COLR from set of master COLRv1 tables
2022-07-06 10:55:50 +01:00
Cosimo Lupo
46e780ffa2
Merge pull request #2668 from googlefonts/hb_repack
Update how table packing falls back to fontTools from harfbuzz.
2022-07-06 10:49:39 +01:00
Cosimo Lupo
b63df64f8d
Merge pull request #2675 from dscorbett/fealib-ignore-names-2-6
[feaLib] Let the parser set nameIDs 1 through 6
2022-07-06 10:42:27 +01:00
Nikolaus Waxweiler
2cd4f7e688 Use NameID enum 2022-07-06 10:40:27 +01:00
Nikolaus Waxweiler
87bf2a866d Update docstring 2022-07-06 10:37:22 +01:00
Cosimo Lupo
cdc7cc3cc4 COLR merger be cleverer and only deepcopy effectively reused layers
instead of blindly copying them all like in previous commit.
2022-07-05 20:37:54 +01:00
Cosimo Lupo
c27483fa54 [instancer] add --no-recalc-bounds CLI option 2022-07-05 19:02:21 +01:00
Cosimo Lupo
8a9f16d129 COLRVariationMerger: copy destination layers to ensure they are unique and can be modified in place 2022-07-05 17:53:39 +01:00
Nikolaus Waxweiler
e84bee9cd9 Set bits only after updating names 2022-07-05 16:10:15 +01:00
Nikolaus Waxweiler
2c773441cf Remove logging 2022-07-05 16:09:37 +01:00
Nikolaus Waxweiler
16d899a2be Apply RIBBI bits to all kinds of fonts 2022-07-05 15:45:44 +01:00
Cosimo Lupo
e5029801d2 support merging COLR masters with 'sparse' glyphsets or different layer count
There is no longer a requirement that all the masters have exactly the same base color glyphs as the default masters. Similarly, it's no longer required that all masters' LayerLists have the same total count of layers. It is sufficient that, for a base color glyph in the default master, a non-default master may (or may not) contain one with the same name and same effective number of layers (which in turn can be laid out differently in the respective LayerLists).
This provides greater flexibility when working with variable font project with sparse glyph sets.
2022-07-05 00:11:12 +01:00
Cosimo Lupo
a3f402e036 move build_n_ary_tree to misc/treeTools.py module
so I can import from varLib.merger as well
2022-07-04 23:08:14 +01:00
Cosimo Lupo
5d52124e49 varLib.errors: allow to give extra context as to where an error occurs in the optional 'cause' 2022-07-04 18:52:20 +01:00
Cosimo Lupo
4b9f35dc2b varLib.merger: subset self.ttfs to non-None (sparse) values in VariationMerger.mergeThings 2022-07-04 18:52:20 +01:00
Cosimo Lupo
3b0769b519 colorLib: let clipBoxes contain more glyphs than colorGlyphs, helps with sparse variable builds 2022-07-04 18:44:54 +01:00
Cosimo Lupo
eb00e499c0 colorLib: factor out LayerReuseCache class 2022-07-04 12:40:47 +01:00
David Corbett
8ec37c4bb3 [feaLib] Let the parser set nameIDs 1 through 6 2022-07-02 15:23:03 -04:00
Nikolaus Waxweiler
a3e14643a1 Set RIBBI bits when cutting instances 2022-06-30 18:56:03 +01:00
Cosimo Lupo
d85aa2d119 COLRVariationMerger: further optimize DeltaSetIndexMap
previously we only reused the VarIndexBase of a previously seen variable table when the current's varIdxes were _fully_ equal to one of the previous; now we also try to find a match anywhere in the accummulated list of self.varIdxes, including a partial match at the tail of the list.
2022-06-28 14:11:28 +01:00
Garret Rieger
10140f9df3 Remove TODO. 2022-06-27 18:32:04 +00:00
Garret Rieger
8196166e53 Add some additional comments about packing state machine. 2022-06-27 18:28:02 +00:00
Garret Rieger
d92fd2665c Use enum's for repacker state. 2022-06-27 18:18:20 +00:00
Cosimo Lupo
c397764720 COLRVariationMerger: implement reuse of VarIndexBase between tables with same varIdxes
When multiple variable tables refer to the same delta-sets they can now share the same VarIndexBase so the resulting DeltaSetIndexMap is a bit smaller.
For simplicity, we only reuse VarIndexBase when variable tables fully share (ie. same, and same number of) varIdxes; potentially we could reuse subsets of varIdxes (e.g. a VarColoStop.Alpha has a +0.5 delta, and later on elsewhere a PaintVarSolid.Alpha has a similar +0.5 delta; the latter could have a VarIndexBase that reuses an existing DeltaSetIndexMap entry for the former), but for now this I think is good enough.
2022-06-27 17:17:32 +01:00