1289 Commits

Author SHA1 Message Date
Cosimo Lupo
b3ce0979cb
Merge pull request #3123 from fonttools/avar2-designspace
[designspace] Add avar2 mapping support
2023-06-08 12:58:51 +01:00
Behdad Esfahbod
d601646cf2 [varLib/avar2] Remove warning
https://github.com/fonttools/fonttools/pull/3123#issuecomment-1573199305
2023-06-02 12:51:25 -06:00
Cosimo Lupo
0690703b86
varLib: add --drop-implied-oncurves option
For the test, I used the Tests/varLib/data/Build.designspace as starting point, modified the 'a' glyph so that 1 on-curve point (the first one) becomes impliable for all the masters.
2023-06-02 15:50:32 +01:00
Behdad Esfahbod
ddf16c9130 [designspaceLib/avar2] Apply review comments 2023-06-01 11:54:43 -06:00
Behdad Esfahbod
ce0a32d1a4 [varLib.builder] Fixup 2023-05-30 22:46:47 -06:00
Behdad Esfahbod
a99a75e8a6 [varLib/avar2] Use buildDeltaSetIndexMap()
Also change buildDeltaSetIndexMap() to move the identity
optimization there. Update the only other callsite (COLRv2).
2023-05-30 13:30:36 -06:00
Behdad Esfahbod
a08acf41f8 [varLib/avar2] Omit identity VarIdx map 2023-05-30 13:22:12 -06:00
Behdad Esfahbod
d915f08e76 [varLib/avar2] Don't require base master to be specified explicitly
We can deduce it as empty mapping.
2023-05-30 13:13:49 -06:00
Behdad Esfahbod
ff7f49a94c [varLib/avar2] Add compile test 2023-05-30 13:13:49 -06:00
Behdad Esfahbod
246d539e29 [designspaceLib/avar2] Warn if input location missing for an output axis
https://github.com/fonttools/fonttools/pull/3123#issuecomment-1568852694
2023-05-30 12:10:15 -06:00
Behdad Esfahbod
588cbc982d [designspaceLib/avar2] Rename variables 2023-05-30 11:55:48 -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
ae2305196a [designspaceLib/avar2] Store axis name, not tag, in <dimension> 2023-05-28 15:14:25 -06:00
Behdad Esfahbod
0b57567c14 [designspaceLib/avar2] Add AxisMappingDescriptor 2023-05-28 15:14:25 -06:00
Behdad Esfahbod
be9dacad74 [designspaceLib/avar2] Rename mapping to axisMappings 2023-05-28 15:14:25 -06:00
Behdad Esfahbod
5785fdeec3 [avar2] Emit the difference of input vs output 2023-05-28 15:14:25 -06:00
Behdad Esfahbod
b9e03b165b [avar2] Rewrite loop 2023-05-28 15:14:25 -06:00
Behdad Esfahbod
50fc8218b3 [designspace/varLib] Hack to read avar2 mapping and build avar2 table
This just uses list of list of dictionaries. Should use proper objects.

https://github.com/fonttools/fonttools/issues/3049

https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2-in-designspace.md
2023-05-28 15:14:25 -06:00
Behdad Esfahbod
59058bb54f [varStore.optimize] Address review comment
Harmless thinko.
2023-05-25 12:24:46 -06:00
Behdad Esfahbod
4e7cdeb8b1 [varStore.optimize] More idiomatic 2023-05-25 11:35:50 -06:00
Behdad Esfahbod
0a239f15d8 [varStore.optimize] Comment 2023-05-25 11:33:08 -06:00
Behdad Esfahbod
f5e62a1375 [varLib.optimize] Minor more idiomatic 2023-05-25 10:54:13 -06:00
Behdad Esfahbod
dbc91b1b5b [varStore.optimize] Remove unused variable 2023-05-25 08:52:13 -06:00
Behdad Esfahbod
12aba9070f [varStore.optimize] Combine a couple of loops 2023-05-25 08:50:01 -06:00
Behdad Esfahbod
b0a0f74492 [varStore.optimize] Speed up some more 2023-05-25 08:47:47 -06:00
Behdad Esfahbod
b6ebb4c411 [varStore.optimize] Further speedup 2023-05-25 08:45:53 -06:00
Behdad Esfahbod
d8fabfa362 [varStore.optimize] Remove unused method 2023-05-25 08:28:12 -06:00
Behdad Esfahbod
832f2f766f [varStore.optimize] Use faster intTools.bit_count as popcount 2023-05-25 08:19:15 -06:00
Behdad Esfahbod
9cbde09cdc [varStore.optimize] Speed up 2023-05-25 08:09:27 -06:00
Behdad Esfahbod
f12f3d863c [varStore.optimize] Remove unused best_new_encoding 2023-05-25 07:56:33 -06:00
Behdad Esfahbod
da305615d0 [varStore.optimize] Simplify algorithm
Produces better results even.
2023-05-25 07:49:13 -06:00
Behdad Esfahbod
47ec18f788 [varStore] Better optimize() algorithm
See comments.

Produces better results.
2023-05-25 07:39:41 -06:00
Behdad Esfahbod
93d87df315 [varStore] Refactor code into a method 2023-05-25 07:12:27 -06:00
Behdad Esfahbod
035529883c [varStore] Minor rename a method 2023-05-25 07:06:48 -06:00
Behdad Esfahbod
c1ab8995f2 [varStore] Minor adjustment to the optimize() algorithm
It's very unlikely that this path is needed, but it's correct
to have it.
2023-05-25 07:00:28 -06:00
Behdad Esfahbod
a08f5ebbc9 [varStore] Update comment 2023-05-25 06:24:00 -06:00
Behdad Esfahbod
ae7394e68a [varLib.main] Accept --quantization 2023-05-24 18:10:08 -06:00
Behdad Esfahbod
d9649a7835 [varStore] Add test for quantization 2023-05-24 18:10:08 -06:00
Behdad Esfahbod
311bda2021 [varStore] Add optional quantization to optimize() 2023-05-24 18:10:08 -06:00
Behdad Esfahbod
47813b217c [varStore] Make optimize() stable
Before, calling optimize() on its own output could generate different
result. I think it's stable now.
2023-05-24 18:09:58 -06:00
Behdad Esfahbod
6b20edf1fb [varStore] Fix algorithm comment to match code 2023-05-24 17:08:20 -06:00
Behdad Esfahbod
1aa088e150 [varStore.main] Speed up if output is not requested 2023-05-24 17:05:00 -06:00
Behdad Esfahbod
2f78605c27 [varStore] Change a sort key in optimize()
Produces more optimized results in empirical testing.
2023-05-24 16:55:16 -06:00
Behdad Esfahbod
aeaf98a438 [varStore] Another fix and test 2023-05-24 16:34:15 -06:00
Behdad Esfahbod
8ae33a7ef3 [varStore] Add a round=round parameter to storeMasters 2023-05-24 14:24:36 -06:00
Behdad Esfahbod
b72a8da045 [varStore] Adjust encoding overhead in optimize()
Previously we were not accounting for the LOffset to VarData.
2023-05-24 13:21:33 -06:00
Behdad Esfahbod
0677c0e705 [varStore] Another bugfix in optimize() 2023-05-24 13:18:58 -06:00
Behdad Esfahbod
cb2f5aacd3 [varStore] More documentation 2023-05-24 12:19:46 -06:00
Behdad Esfahbod
cdcbf64d36 [varStore] Document the optimize algorithm 2023-05-24 12:09:43 -06:00
Behdad Esfahbod
58954179ec [varStore] Another fix to the optimize algorithm
Previously we were disregarding the best_gain. Ouch!
2023-05-24 12:02:05 -06:00