1895 Commits

Author SHA1 Message Date
Behdad Esfahbod
6aca5be9b7 [gvar] Don't expand glyph for unused pointCount
Keep it in the API though.
2022-12-09 11:39:07 -07:00
Behdad Esfahbod
96de954d29 [gvar] Don't expand glyph during decompile if no variation data 2022-12-07 21:34:36 -07:00
Behdad Esfahbod
3a258573af [gvar] Avoid decompiling glyphs that don't have variations 2022-12-07 14:50:15 -07:00
Zachary Quinn Scheuren
0c43aeb511
Skip scaling of vsindex in scaleUpem.py 2022-11-17 21:40:32 +09:00
Cosimo Lupo
b4e664da21
[woff2] Add support for encoding/decoding OVERLAP_SIMPLE glyf flags in WOFF2
Fixes #2576

This updates our woff2 encoder/decoder to support retaining the OVERLAP_SIMPLE glyf flag following the updated WOFF 2.0 specification and official google/woff2 implementation.

https://www.w3.org/TR/WOFF2/#glyf_table_format
2022-11-09 13:56:46 +00:00
Behdad Esfahbod
155c32c2d0 [ttLib/main] Fix writing! 2022-11-01 11:18:56 -06:00
Behdad Esfahbod
d23804c916 [ttLib/main] Port to argparse instead of getopt 2022-11-01 11:18:56 -06:00
Behdad Esfahbod
366e16b36b [ttLib] Convert fonts <-> collection in main()
Fixes https://github.com/fonttools/fonttools/pull/2869
2022-11-01 11:18:56 -06:00
Behdad Esfahbod
a639516c4c [ttLib] Add main
Just opens font files from commandline.
2022-11-01 11:18:56 -06:00
Behdad Esfahbod
027de814e2 [subset/SVG] Speed up
Subsetting NotoColorEmojiSvg for one glyph.

Before: 280ms
After: 80ms

Fixes https://github.com/fonttools/fonttools/issues/2360
2022-10-26 14:06:35 -06:00
Cosimo Lupo
40b2473a48
Merge pull request #2728 from fonttools/instancer-l4
[instancer] Towards L4 instancing
2022-10-21 16:39:09 +01:00
Behdad Esfahbod
3d2fa8a342 [glyf] Return component transform as part of control data
This makes sure that when we are building variable fonts, we
check that all masters have the same component transform in
composite glyphs.  We were not checking for this before.
2022-10-20 11:05:08 -06:00
Behdad Esfahbod
5ff9546531 [TupleVariation] Add __imul__ 2022-10-13 10:35:02 -06:00
Behdad Esfahbod
f19283e692 [scaleUpem] Handle CFF hintmask 2022-10-04 12:40:14 -06:00
Behdad Esfahbod
6b7c2767d7 [scaleUpeam] Calculate numShorts in VarData after scale
Part of https://github.com/fonttools/fonttools/issues/2840
2022-10-04 12:34:53 -06:00
Just van Rossum
d0f4133df0 Fix arguments in calls to (glyf) glyph.draw() and glyph.drawPoints(); this fix also exposed a second bug, where lsb and tsb were not set; this fixes #2824 2022-09-20 09:00:35 +02:00
Miguel Sousa
1306a71db3
Merge pull request #2786 from fonttools/msousa-bad-post-format-1
Don't crash when `post` format 1 is improperly used
2022-08-31 08:52:49 -07:00
Miguel Sousa
96c9250cf8 Update warning message [skip ci] 2022-08-31 08:52:17 -07:00
Cosimo Lupo
36de9df3cc [gvar] be non lazy for TTFont.lazy=False, add ensureDecompiled
like cmap, or glyf or OTL tables, we need to respect lazy=False flag and decompile everything upfront, also we want to add an ensureDecompiled method (called by TTFont.ensureDecompiled) to allow loading everything in one go even when a font had been opened lazily.
2022-08-31 11:10:50 +01:00
Miguel Sousa
a2efac012c Add warning log 2022-08-30 23:56:03 -07:00
Miguel Sousa
0e9c48e6ab Don't crash when post format 1 is improperly used
Fixes #2736
2022-08-30 09:14:03 -07:00
Just van Rossum
8fa79f3c68 Use ABC baseclass, instead of ABCMeta metaclass 2022-08-30 12:02:43 +02:00
Just van Rossum
a4f3cb1c98 drawPoints can have an implementation that calls draw using SegmentToPointPen 2022-08-30 12:00:50 +02:00
Just van Rossum
7ae37322cd make _TTGlyph an abstract base class, with draw and drawPoints abstract methods 2022-08-30 11:47:39 +02:00
Just van Rossum
6ec0177f1f tweak getGlyphSet() doct string, using backticks, and fixing a typo 2022-08-30 08:49:36 +02:00
Just van Rossum
6d2a9904c4 Add TTFont.normalizeLocation() as a public method. 2022-08-30 08:49:36 +02:00
Just van Rossum
cca0faae74 oops, look at 'normalized' flag again 2022-08-30 08:49:36 +02:00
Just van Rossum
0c68a5621a move normalization of location to TTFont 2022-08-30 08:49:36 +02:00
Just van Rossum
42a8d5cbdf no need for if expression 2022-08-30 08:49:36 +02:00
Just van Rossum
7aa4c0fb29 Avoid glyphSetClass variable; reads a little bit better 2022-08-30 08:49:36 +02:00
Just van Rossum
8fb071a403 remove redundant initializer 2022-08-30 08:49:36 +02:00
Just van Rossum
b45d9b014a simplify class selection logic 2022-08-30 08:49:36 +02:00
Just van Rossum
65814c3ccd inline haveCFF condition 2022-08-30 08:49:36 +02:00
Just van Rossum
b818e1494f Refactor ttGlyphSet.py
- only differentiate between glyf and CFF/CFF2 implementations, not var vs non-var
- use collections.abc.Mapping to get a more consistent dict-like object with less code
- prefer HVAR metrics over gvar metrics
- move some responsibilities from the _TTGlyphSet objects to the _TTGlyph objects
- adjust some tests to the changes
2022-08-30 08:49:36 +02:00
Just van Rossum
8932ab427f Convert tabs to spaces 2022-08-29 19:28:46 +02:00
Behdad Esfahbod
24bd200b6e [ttGlyphSet-CFF] Cache instancer 2022-08-27 13:32:19 -06:00
Behdad Esfahbod
bcd637bd1a [ttGlyphSet-cff] Remove rounding 2022-08-27 12:20:15 -06:00
Behdad Esfahbod
f5a1d0ba10 [ttVarGlyphSet-CFF] Handle font without advance variation 2022-08-26 21:24:24 -06:00
Behdad Esfahbod
9fe1f8c73e [ttVarGlyphSet-cff] Handle non-variable fonts 2022-08-26 21:20:56 -06:00
Behdad Esfahbod
683308abb5 [varGlyphSet-cff] Apply advance width variation 2022-08-26 21:07:10 -06:00
Behdad Esfahbod
4650b8d293 [cff] Store varStore in CharStrings 2022-08-26 21:00:37 -06:00
Behdad Esfahbod
a7cda37fbb [ttVarGlyphSet] Support CFF 2022-08-26 20:52:18 -06:00
Just van Rossum
a32a92e6d7 add custom __init__ in favor of setting .data externally 2022-08-26 10:53:32 -06:00
Just van Rossum
a0af5727e1 Use UserDict for lazy gar variations dict; alternative for #2779 2022-08-26 10:53:32 -06:00
Just van Rossum
66411c426b address feedback 2022-08-25 16:11:24 +02:00
Just van Rossum
b460afca09 Implement drawPoints natively 2022-08-25 15:21:54 +02:00
Behdad Esfahbod
5454989987 [ttGlyphSet] Copy glyph components before shifting
Fixes https://github.com/fonttools/fonttools/issues/2774
2022-08-24 13:30:28 -06:00
Just van Rossum
0637b24b2a Read gvar more lazily by not parsing all of the 'glyf' table 2022-08-24 16:38:00 +02:00
Just van Rossum
5aa83bed33 make glyphset[gn].drawPoints(pointPen) work for CFF 2022-08-24 14:48:58 +02:00
Behdad Esfahbod
1d285e82ca [scaleUpem] Scale all FontMatrix entries, not just two 2022-08-22 11:16:47 -06:00