7385 Commits

Author SHA1 Message Date
rsheeter
383fc3fad7 Release 4.55.1 2024-12-03 08:33:18 -08:00
Behdad Esfahbod
1773f7b0ad [ttGlyphSet] Support VARC CFF2 fonts 2024-12-02 13:59:39 -07:00
Colin Rofls
d6f3c51895 [varLib] "Fix" cython iup issue?
In some cases we were seeing different output from iup depending on
whether or not we were running cython code.

I've tracked this particular issue down to the line that is changed in
this diff, and the change introduced in this diff does (locally, for me,
on one machine with one architecture and one compiler) seem to suppress
the problem.

However... it feels pretty bad??

I'm not sure how motivated I am to try and generate a proper minimal
test case and try to get this fixed upstream. I guess I'm.. medium
motivated? But at the very least it would be nice to figure out a more
robust way to prevent this optimization from happening, and at the very
_very_ least it would be nice to figure out away to test this.

The solution I was hoping for was some way to write some actual
hand-written C so we could have finer-grained control over what's going
on, and use that just for this one little bit of arithmetic, but I
didn't see an easy way to do that.
2024-11-27 23:07:39 -07:00
Behdad Esfahbod
e037cea726 [cython] Simplify COMPILED variables 2024-11-27 22:53:16 -07:00
Behdad Esfahbod
3fe083e8d1 [DecomposedTransform] Document and implement always skewY == 0
Spotted by Cosimo. I convinced myself he is right, since a and b
are zero in that branch.
2024-11-22 01:18:33 -07:00
Behdad Esfahbod
b8635fee62 [cffLib.transforms] Handle an attribute error
Fixes https://github.com/fonttools/fonttools/issues/3695
2024-11-21 14:21:20 -07:00
Rod S
b90ac3c29f Bump version: 4.55.0 → 4.55.1.dev0 2024-11-14 09:00:08 -08:00
Rod S
6ad1c3192a Release 4.55.0 2024-11-14 09:00:08 -08:00
Cosimo Lupo
b371f23760 fontBuilder: don't add mac names for fvar and STAT if name table hasn't any 2024-11-14 12:57:44 +01:00
Cosimo Lupo
d2ce6e075c check for mac names in buildVFStatTable for DSv5 sources with STAT data 2024-11-14 12:57:44 +01:00
rsheeter
991e7914e3 Lets not add inconsistent names? 2024-11-13 16:17:56 -08:00
Behdad Esfahbod
a8462a65c5 [specializer] Use "is None" 2024-11-12 20:17:50 -07:00
Behdad Esfahbod
751d1383af [specializer] Reuse list len()'s 2024-11-12 20:15:38 -07:00
Behdad Esfahbod
cfba1f995f [cffLib.specializer] Make command-merging linear again
The consideration for blends had made it into O(n^2).
Make it linear again.

Speeds up Tests/cffLib/specializer_test.py::CFFSpecializeProgramTest::test_maxstack_blends
3x for me.
2024-11-12 18:43:03 -07:00
Behdad Esfahbod
7e6d31569f [cffLib.specializer] Adjust stack use calculation
See comment.
2024-11-12 17:47:52 -07:00
Behdad Esfahbod
f1d3e116d5
Merge pull request #3672 from googlefonts/cmap14
[subset] consider variation selectors subsetting cmap14
2024-11-11 13:45:36 -07:00
Behdad Esfahbod
dafb6d26a0
Merge pull request #3679 from fonttools/cff2-specializer-maxStack
[CFF2] specializer fix stack overflow
2024-11-08 10:51:04 -07:00
Behdad Esfahbod
bb7a29e81a [cffLib.specializer] Fix more stack-overflow opportunity
I think it's solid now.
2024-11-06 19:13:35 -05:00
ftCLI
1cb153b2c5 Remove unused imports from reorderGlyphs.py 2024-11-05 17:42:26 +01:00
ftCLI
a238ed2c31 Remove '.notdef' glyph handling code 2024-11-05 17:10:39 +01:00
Behdad Esfahbod
776e1ce132 [cffLib.specializer] Fix CFF argument stack overflow
The code was always merging at least two blends, which was causing
stack-overflow with a test font of ours. Move the overflow check
earlier to catch that.

Fixes https://github.com/fonttools/fonttools/issues/3676
2024-11-05 10:38:00 -05:00
ftCLI
ea59c39e21 Ensure '.notdef' is first glyph and update CFF table 2024-11-05 16:36:36 +01:00
Behdad Esfahbod
614d9ebf6b [cffLib.specializer] Minor refactor 2024-11-04 13:52:28 -05:00
Behdad Esfahbod
b5373bf5d2 [varLib.interpolatable] Support CFF2 input font
Fixes https://github.com/fonttools/fonttools/issues/3666
2024-11-04 11:13:42 -07:00
Behdad Esfahbod
885d7c1ecb [varLib.interpolatable] Warn if only one master was found
Motivated by https://github.com/fonttools/fonttools/issues/3666
2024-11-04 11:13:42 -07:00
Behdad Esfahbod
20b47fc989 [CFF2] Lift uint16 VariationSore.length limitation
Fixes https://github.com/fonttools/fonttools/issues/3673
2024-10-30 09:15:49 -06:00
Behdad Esfahbod
9372554dce [cffLib] Typo 2024-10-29 10:31:42 -07:00
Behdad Esfahbod
7a0062a718 [cffLib.specializer] Add cmdline to specialize a CFF2 font 2024-10-29 08:25:20 -06:00
Garret Rieger
201f02c2c2 [subset] Fix lint. 2024-10-24 00:30:38 +00:00
Garret Rieger
4a38610072 [subset] consider variation selectors subsetting cmap14
cmap14 subsetting code was not considering variation selectors in the input unicode set when deciding which variant glyphs to keep. This updates subsetting to only keeps variant glyphs if their variation selector code point is in the input unicodes set.
2024-10-23 21:39:33 +00:00
Behdad Esfahbod
4ad6b0db13 [CFF2ToCFF] Map charset to CIDs
This seems to fix the case of ttx not handling the results.
I *think* this fixes the rest of the issues I've been seeing
with this conversion.
2024-10-23 11:36:26 -06:00
Behdad Esfahbod
c384709c0a [CFF2ToCFF] Convert FD's to CFF1
Makes ftview like the font, but still not ttx.
2024-10-23 11:36:26 -06:00
Behdad Esfahbod
87ae6ba224 [CFF2ToCFF] Remove wrong and unnecessary argument
This had no effect though, since file is None.
2024-10-23 11:36:26 -06:00
Behdad Esfahbod
4360969baa [cffLib.transforms] Handle case of one FD in remove_unused_subrs 2024-10-23 11:36:26 -06:00
Behdad Esfahbod
2225c84a1b [CFFToCFF2] Allow fdIndex==0
Oops.
2024-10-23 11:36:26 -06:00
Behdad Esfahbod
7fadfa4e81 Revert "refactor: pass isfinal argument spelled-out not a number"
This reverts commit 6d65a87301b6c746ae0ec1dc1cf0df75c0c21d63.

https://github.com/fonttools/fonttools/pull/3669#issuecomment-2428475144
2024-10-22 01:34:48 -06:00
Robin
6d65a87301 refactor: pass isfinal argument spelled-out not a number 2024-10-22 01:28:05 -06:00
Robin
505c6e1fa3 set isfinal to true to enable xml parser to free resources 2024-10-22 01:28:05 -06:00
Cosimo Lupo
dd8d80a4f2
Merge pull request #3561 from drj11/drj11/unicode-hex
Check unicode elements have required hex attribute
2024-10-15 16:39:12 +02:00
Khaled Hosny
101ff1508c [removeOverlaps] Pass None to T2CharStringPen if widths equals defaultWidthX 2024-10-12 01:45:32 +03:00
Khaled Hosny
40b525c1e3 [removeOverlaps] Fix CFF CharString width
The width argument of `T2CharStringPen()` is inserted directly into the
CharString program, so it must be relative to Private.nominalWidthX, but
CharString.width is a calculated absolute value.

Some implementations, notably Adobe’s, will use the width from the CFF
CharString instead of the one from hmtx table.

Fixes https://github.com/fonttools/fonttools/issues/3658
2024-10-12 01:22:17 +03:00
Behdad Esfahbod
e8146a6d07 [glyf] Add optimizeSize option
Set to True by default. Can be turned to False on the table,
or at Glyph() compile time.

Also fixes Glyph's draw() to expand the glyph first. Otherwise
it was failing.
2024-10-11 08:31:31 -06:00
Behdad Esfahbod
6c2cbc273d [otConverters] Map int32
Unused. For completeness.
2024-10-07 06:08:35 -06:00
Behdad Esfahbod
0213bea88e [TupleVariation] Option to optimize for loading speed, not size 2024-10-06 18:11:48 -06:00
Behdad Esfahbod
0c38f86da9 [MultiVarStore] Remove unused optimize parameter 2024-09-25 09:30:39 -06:00
Simon Cozens
ae96a6d374 Fix cut-and-paste error 2024-09-25 06:34:31 -06:00
n8willis
ff78d5a161
Merge pull request #3637 from n8willis/docs-ufoLib
Docs: ufoLib and misc updates
2024-09-25 11:27:46 +01:00
Khaled Hosny
47c1edbee5 Bump version: 4.54.1 → 4.54.2.dev0 2024-09-24 17:15:33 +03:00
Khaled Hosny
112ace8189 Release 4.54.1 2024-09-24 17:15:32 +03:00
Mark Elliot
4cd0b0d87d Escape \ in subset docs 2024-09-23 12:42:15 -06:00