6732 Commits

Author SHA1 Message Date
Behdad Esfahbod
f1e56cd757 [instancer.solver] Fix case where axisDef < lower and upper < axisMax
Fixes https://github.com/fonttools/fonttools/issues/3291
2023-10-16 13:46:39 -06:00
Behdad Esfahbod
807864872e
Merge pull request #3301 from fonttools/faster-glyf
Faster `glyf` compile
2023-10-16 12:25:35 -06:00
Behdad Esfahbod
db393f6560 [glyf] Review feedback 2023-10-16 12:30:36 -04:00
Behdad Esfahbod
2a855f8bd6 Revert "[varLib.interpolatable] Cythonize"
This reverts commit 0914c6c0eefb1317aba95779fb469e138b19f365.
2023-10-14 18:58:53 -04:00
Behdad Esfahbod
0914c6c0ee [varLib.interpolatable] Cythonize
Doesn't save much; only 5% in RobotoFlex.  Probably going to revert.
2023-10-14 18:58:49 -04:00
Behdad Esfahbod
b01fbf2785 [varLib.interpolatable] Skip comparing contour orders if only 0 or 1 2023-10-14 17:43:45 -04:00
Behdad Esfahbod
4714c37028 [varLib.interpolatable] Speed up m0idx finding
Don't use list.index() which would compare vectors...
2023-10-14 17:25:52 -04:00
Behdad Esfahbod
d29856b2e4 [varLib.interpolatable] Micro-optimize a check 2023-10-14 17:09:27 -04:00
Behdad Esfahbod
9f42783d6f [varLib.interpolatable] Reduce imports in bipartite-matching
Choose the right implementation upfront
2023-10-14 17:01:08 -04:00
Behdad Esfahbod
67be79d77a [glyf] Use a boundsCache within _setCoordinates
Speeds up "pixel" fonts that reuse the same component a lot.
Speeds up instantiating Handjet by 47%.
2023-10-14 13:02:21 -04:00
Behdad Esfahbod
e1117da0af [glyf] Speed up getGlyphID()
Speeds up compiling of fonts with lots of composite glyphs.
For example, 40% speedup in decompile/compiling Handjet font:

./fonttools ttLib Handjet\[ELGR,ELSH,wght\].ttf -t'*' -o out.ttf
2023-10-14 12:57:32 -04:00
Behdad Esfahbod
cc09d5f381 [TupleVariation] Slightly speed up compileCoords
Small but measurable speedup.
2023-10-14 12:57:32 -04:00
Behdad Esfahbod
9eeee75b03 [glyf] Speed up recalcBounds() 2023-10-13 13:53:44 -04:00
Behdad Esfahbod
fe37e91258 [glyf] Speed up recalcBounds of composite glyphs
Brings down decompile/compiling of Handjet font from 11s to 0.3s.

Test with:
time ./fonttools ttLib Handjet.ttf -o out.ttf -tglyf

Part of fixing https://github.com/fonttools/fontbakery/discussions/4301
2023-10-13 13:52:19 -04:00
Behdad Esfahbod
089afcbccd [arrayTools] Allow None bounds in updateBounds 2023-10-13 13:13:26 -04:00
Behdad Esfahbod
377105f0c1 [glyf] Speed up coordinates slice access 2023-10-13 12:22:48 -04:00
Behdad Esfahbod
36eec087c4 [ttLib.main] Accept list of tables to decompile
Useful for performance measurement of load / save.
2023-10-13 12:13:21 -04:00
Behdad Esfahbod
54bf9723a8 [varLib.interpolatable] Sort glyphs by glyphname by default 2023-10-12 20:57:28 -04:00
Behdad Esfahbod
ca11333bab [varLib.interpolatable] Close over component glyphs
...when processing variable font.

Continuation of 636295a7ee558c5712a719c632a91d6c65bfc6d8

Part of fixing https://github.com/fonttools/fontbakery/discussions/4301
2023-10-12 20:45:23 -04:00
Behdad Esfahbod
89b6b95ba9 [varLib.interpolatable] Combine vdiff() and vlen()
Faster.
2023-10-12 20:07:57 -04:00
Behdad Esfahbod
5eff55e654 [varLib.interpolatable] Don't iterate over all glyphs if not needed 2023-10-12 19:23:51 -04:00
Behdad Esfahbod
408dea84bc [varLib.interpolatable] Speed up complex_vlen() 2023-10-12 19:15:29 -04:00
Behdad Esfahbod
739868f78e [varLib.interpolatable] Skip "drawing" glyphs with only one master
Speeds up Handjet another 10x.

Part of fixing https://github.com/fonttools/fontbakery/discussions/4301
2023-10-12 18:49:58 -04:00
Behdad Esfahbod
636295a7ee [varLib.interpolatable] Speed up working on variable fonts
Only check each glyph at its own "master" locations instead of at
all master locations across the font.

Incomplete.

Fixes https://github.com/fonttools/fontbakery/discussions/4301
2023-10-12 16:03:22 -06:00
Cosimo Lupo
98242634c4
Bump version: 4.43.1 → 4.43.2.dev0 2023-10-06 11:28:53 +01:00
Cosimo Lupo
f8857f6256
Release 4.43.1 2023-10-06 11:28:49 +01:00
Cosimo Lupo
5c8bce194b
Merge pull request #3162 from robhagemans/bugfix-ebdt-reversebytes
Bug fix for `TypeError` in `_reverseBytes()` in module `E_B_D_T_`, currently breaks on `bytes` arguments longer than 1
2023-10-06 11:14:10 +01:00
Cosimo Lupo
442576fb1f Fix UnbouldLocalError and let {h,v}hea be no-op when no {v,h}mtx is present
Fixes https://github.com/fonttools/fonttools/issues/3289
2023-10-06 10:30:33 +01:00
Cosimo Lupo
21dea1e18d fix incorrectly typed cython local variable
Fixes https://github.com/fonttools/fonttools/issues/3287
2023-10-06 10:10:46 +01:00
Simon Cozens
c5295d2f16
Better OTL builder errors (#3286)
* Raise a sensible error for keyerror

* Try harder to find error locations

* Chain exception
2023-10-05 11:09:22 +01:00
Cosimo Lupo
f95105b669
Bump version: 4.43.0 → 4.43.1.dev0 2023-09-29 11:26:16 +01:00
Cosimo Lupo
145460e77f
Release 4.43.0 2023-09-29 11:26:15 +01:00
Behdad Esfahbod
60126435df [iup] Work around cython bug
Fixes https://github.com/fonttools/fonttools/issues/3282

Ref https://github.com/cython/cython/issues/3928
2023-09-28 16:39:03 -06:00
Behdad Esfahbod
b14268a23c [iup] Remove copy/pasta 2023-09-28 12:30:10 -06:00
Behdad Esfahbod
0a3360e527 [varLib.avar] New module to compile avar from .designspace file
Fixes https://github.com/fonttools/fonttools/issues/3275
2023-09-22 10:09:18 -06:00
Cosimo Lupo
532a771b98 fix minor typo [skip ci] 2023-09-15 16:58:17 +02:00
Cosimo Lupo
9f61271dc1 subset: parse OT-SVG with resolve_entities=False
to guard against XXE attacks as recommended in https://codeql.github.com/codeql-query-help/python/py-xxe/
2023-09-15 16:50:38 +02:00
Behdad Esfahbod
74240afc35 Revert "[varLib] Fix comment"
This reverts commit a54e45a6eafe6006b24b654c6933dd15bdbd436d.
2023-09-15 07:53:09 -06:00
Behdad Esfahbod
964685ae44 [avarPlanner] A couple more minor changes to main() 2023-09-15 07:48:00 -06:00
Behdad Esfahbod
ebbe869367 [avarPlanner] Move a couple lines around 2023-09-15 07:44:27 -06:00
Behdad Esfahbod
a54e45a6ea [varLib] Fix comment 2023-09-15 07:40:29 -06:00
Qunxin Liu
a51b3c9d68 fix the order of prune_unused_regions, should be after vardata optimization 2023-09-05 10:44:29 -07:00
Cosimo Lupo
886d3b36ca
Bump version: 4.42.1 → 4.42.2.dev0 2023-08-20 13:58:29 +01:00
Cosimo Lupo
95e1579b3e
Release 4.42.1 2023-08-20 13:58:25 +01:00
Cosimo Lupo
880d7b3f9d
black 2023-08-20 11:59:40 +01:00
Cosimo Lupo
457f11c29b
Fix AttributeError: 'OffsetToWriter' object has no attribute 'repeatIndex'
Fixes #3260
2023-08-20 11:47:54 +01:00
Khaled Hosny
ae31d05605 [ttLib] Fix warning when calling addMultilingualName() with "ar" name
I get warning from _makeMacName() because it does not have a TTFont, but
the font is there, just not passed from addMultilingualName() ->
findMultilingualName() -> _makeMacName().
2023-08-13 14:21:32 +03:00
Simon Cozens
57fb47de3a
Allow for merging of NULL anchors (#3248)
* A failing test for #3247

* Fix up NULL entry/exit records on merge, fixes #3247
2023-08-07 17:12:12 +01:00
Cosimo Lupo
a8d5d45b39
Merge pull request #3241 from fonttools/better-packer
[otBase/packer] Allow sharing tables reached by different offset sizes
2023-08-04 16:06:15 +01:00
Just van Rossum
7d6d0575de
Merge pull request #3240 from fonttools/issue3238
[t1Lib] Fix several Type 1 issues
2023-08-04 09:57:37 +02:00