180 Commits

Author SHA1 Message Date
Behdad Esfahbod
7385cbbc34 [instancer/L4] Simplify 2023-06-21 15:09:56 -06:00
Behdad Esfahbod
023ad3a363 [instancer/L4] Fix crossing calculation 2023-06-21 15:09:56 -06:00
Behdad Esfahbod
3ba7e6d706 [instancer-solver] Fix a bug
Fixes https://github.com/fonttools/fonttools/issues/3139
2023-05-29 17:39:02 -06:00
Behdad Esfahbod
33a94d820d [instancer/VarComposite] Allow instancing non-variable VarComposite axes 2023-01-30 11:26:20 -07:00
Behdad Esfahbod
e4c25d02e6 [instancer/VarComposite] Raise NotImplementedError when warranted 2023-01-30 11:26:20 -07:00
Behdad Esfahbod
0d24114ad0 [varLib/VarComposite] Plug in in a couple places 2023-01-30 11:26:20 -07:00
Behdad Esfahbod
7899dd8dbc [instancer] Limit axis ranges to that of fvar
Fixes https://github.com/fonttools/fonttools/issues/2959
2023-01-26 11:47:25 -07:00
Nikolaus Waxweiler
d584daa8fd Blacken code 2022-12-13 11:26:36 +00:00
Cosimo Lupo
dbc3b48879
[instancer] udpdate OS/2 class and post.italicAngle when default moved (L4)
Previously we were only updating these when pinning wght/wdth/slnt axes.
Now we do whenever any of these axes defaults are changed, whether or not the axes are pinned or kept

Fixes https://github.com/fonttools/fonttools/issues/2885
2022-11-09 16:33:23 +00:00
Behdad Esfahbod
672c4bacdd [instancer.featureVars] Address review comments 2022-11-04 11:55:48 -06:00
Behdad Esfahbod
392706949c [instancer.featureVars] Fix deficiency in L4 instancing
See discussion on the issue.  I think I got this right.

Fixes https://github.com/fonttools/fonttools/issues/2737
2022-11-03 14:55:01 -06:00
Behdad Esfahbod
1b6f4fb858 [instancer.featureVars] Minor adjustments 2022-11-03 14:54:47 -06:00
Behdad Esfahbod
ecfcdffe9f [instancer.featureVars] Combine two functions
Fold _limitFeatureVariationRecord() into
_instantiateFeatureVariationRecord().
2022-11-03 14:22:02 -06:00
Behdad Esfahbod
6e156a7f13 [instancer] Split featureVars code into own module
Towards fixing https://github.com/fonttools/fonttools/issues/2737
2022-11-03 14:21:27 -06:00
Behdad Esfahbod
492645239b [varLib / instancer] Remove DSIG table from font
Fixes https://github.com/fonttools/fonttools/issues/1480
2022-10-28 11:42:57 -06:00
Cosimo Lupo
b74d098115
add custom repr to AxisTriple so they print nicer in the logging output 2022-10-21 18:38:55 +01:00
Cosimo Lupo
86e1202129
[instancer] expand singles/tuples to triples upfront and use triples throughout
Also renamed AxisTent => AxisTriple because I think "tent" is more appropriate to visualize master supports (i.e. a triangle with a peak in the middle), here it's simply the new desired min, default, max values of an axis, or the axis limits.

The public facing instantiateVariableFont continues to accept a hybrid map of axis tags to single values or 2- (and now also 3-) tuples, these are normalized to an AxisLimits mapping that contains only AxisTriples and passed around to the internal methods.
2022-10-21 17:49:35 +01:00
Behdad Esfahbod
233014117b [instancer] Adjust featureVariations retaining logic
https://github.com/fonttools/fonttools/pull/2728#discussion_r975606307
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
9c7ffef55e [instancer] Run black 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
e554ec1dc6 [instancer] Small fix for featureVariations instancing 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
1ff1a537e8 [instancer] Implement L4 featureVariations 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
bce11dfc85 [instancer.solver] Improve diagram for a case 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
3bdfb3e205 [instancer] Remove debug print 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
3f7b250803 [instancer] Add test for FeatureVariations limiting range 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
5ff9546531 [TupleVariation] Add __imul__ 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
fbf796a0a9 [instancer] Use minimum/maximum instead of tuple indices
One of the cases is a bugfix in fact...
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
36bf633555 [instancer.solver] Format 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
b54ac734cc [instancer.solver] Add assertion 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
aabced171e [instancer.solver] Fix case3 with gain
Ouch!
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
7ee8414cab [instancer.solver] Better handling of peak==axisDef 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
e08553011a [instancer.solver] Handle when peak falls on new axis default 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
528bcdf1a2 [instancer] No need to check for scalar=1
The scaleDeltas() function does it.
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
d2cb561cee [instancer] L4 avar mapping 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
24cd9dc00e [instancer] Simplify avar mapping more 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
7330c78b10 [instancer] Towards L4 avar 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
d17d1355a2 [instancer] Simplify avar normalization 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
3108e52a90 [instancer] Remove redundant checks 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
e2a875b26c [instancer] Implement featureVariations L4 instancing
I *think* this is all.
2022-10-13 10:35:02 -06:00
Behdad Esfahbod
890938ef09 [instancer.solver] Try harder to fix on python 3.7 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
3c998785db [instancer.solver] Use older lru_cache instead of cache 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
8f6779d67e [instancer] Fix the rest of tests 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
53b6c4c9fe [instancer.solver] Fix negative -2 case 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
5254c9354c [instancer] Fix most tests! 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
cff162579d [instancer] Fix a few more tests 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
272e4e8999 [instancer] Fix a few more tests 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
5118e3327d [instancer] Fix some more tests 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
0947ca6b6c [instancer] Fix "drop" to some extent 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
d03879607b [instancer] Make a few tests happy 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
4dc271ac72 [instancer.solver] Remove redundant words 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
c628cc82b5 [instancer.solver] Rename internal function 2022-10-13 10:35:02 -06:00