407 Commits

Author SHA1 Message Date
ftCLI
2906e4043d Add test for reorderGlyphs function with CFF fonts 2024-11-05 17:39:57 +01:00
Khaled Hosny
f7ecc6fe65 [removeOverlaps] Add test for handling CFF.Private.nominalWidthX
The test currently fails because we don’t take CFF.Private.nominalWidthX
into account when creating new CharString after overlap removal.
2024-10-12 01:21:59 +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
0213bea88e [TupleVariation] Option to optimize for loading speed, not size 2024-10-06 18:11:48 -06:00
Behdad Esfahbod
973dc5c9a7 [varc] Use Condition instead of ConditionSet
With more Condition formats.

df7dcc4618
https://github.com/harfbuzz/boring-expansion-spec/issues/147
2024-05-22 18:46:07 -06:00
Behdad Esfahbod
9cb73dafeb [varc] Add a conditional VarComponent test 2024-05-22 18:46:07 -06:00
Behdad Esfahbod
74f870f4ef [varc] Add ConditionSets 2024-05-22 18:46:07 -06:00
Behdad Esfahbod
88828e0082 [CFF2IndexOf] Fix data_base
From the spec:
"Offsets in the offset array are relative to the byte
that precedes the object data."
2024-05-22 18:46:07 -06:00
Behdad Esfahbod
5b2df6b90b [VARC] Compute flags from XML transform components 2024-05-22 18:46:07 -06:00
Behdad Esfahbod
037bbe1030 [VARC] Load axisValues as float
https://github.com/fonttools/fonttools/pull/3395#issuecomment-1897696665
2024-05-22 18:46:07 -06:00
Behdad Esfahbod
5ad4045cec [VarComponent] Nicer XML output
https://github.com/fonttools/fonttools/pull/3395#issuecomment-1895944021
2024-05-22 18:46:07 -06:00
Behdad Esfahbod
b1142b60cb [VARC] Adjust to latest flags change 2024-05-22 18:46:07 -06:00
Behdad Esfahbod
297e0bd257 [VARC] Use var-int encoding for AxisIndicesIndex
Slightly larger fonts, but more consistency, and freed
a flag bit.
2024-05-22 18:46:07 -06:00
Behdad Esfahbod
6a09096800 [VARC] Use variable-length encoding for VarIdx'es 2024-05-22 18:46:07 -06:00
Behdad Esfahbod
c3dfe10cce [VARC] Use TupleVariations tuple encoding for axisValues
Free improvement.
2024-05-22 18:46:07 -06:00
Behdad Esfahbod
902b2a194e [VARC] Fix scaleUpem
Instancing left.
2024-05-22 18:46:07 -06:00
Behdad Esfahbod
a7ca67ada8 [VARC] Update subsetting 2024-05-22 18:46:07 -06:00
Behdad Esfahbod
c91984ef77 [VARC] Use sparse-regions in MultiVarStore
Might revert as the savings are small.
https://github.com/harfbuzz/boring-expansion-spec/issues/103#issuecomment-1861531669
2024-05-22 18:46:06 -06:00
Behdad Esfahbod
0f0148e54a [VARC/scaleUpem] Implement 2024-05-22 18:46:06 -06:00
Behdad Esfahbod
f24808c58c Black 2024-05-22 18:46:06 -06:00
Behdad Esfahbod
ce3e260955 [VARC/test] Update the rest of the test expectations
We're using a different font for varc-ac00-ac01...
2024-05-22 18:46:06 -06:00
Behdad Esfahbod
ebd877bbcb [VARC/test] Start adding 2024-05-22 18:46:06 -06:00
Behdad Esfahbod
3ff2ee61e1 Move lazy datastructures to misc.lazyTools 2024-05-22 18:45:28 -06:00
Behdad Esfahbod
c952237ed3 [otConverters] Make _LazyList generic 2024-05-22 18:45:27 -06:00
David Corbett
0738c41dfb [psCharStrings] Shorten output of encodeFloat 2024-05-10 18:47:23 -07:00
Behdad Esfahbod
d590feba99 [avar] Add test for ttGlyphSet support 2024-04-02 11:42:42 -06:00
Khaled Hosny
fae87446a8 Add some basic tests for reorderGlyphs 2024-03-30 17:22:38 -06:00
Behdad Esfahbod
4f6c739181 Move LerpGlyphSet and lerp_recordings to more prominent places
Fixes https://github.com/fonttools/fonttools/issues/3361
2023-12-07 04:49:59 -07:00
Cosimo Lupo
f518e5a704
[OS/2] don't error getting/setting codepages if version=0
return empty set, or set the bits and bump the version to match
2023-11-15 12:21:02 +00:00
Cosimo Lupo
aaed718e41
[glyf_test] Test that composite referencing empty glyph also gets zero bounds
Add reproducer for possible regression in Glyph.recalcBounds introduced with https://github.com/fonttools/fonttools/pull/3301
2023-11-14 16:30:26 +00:00
Khaled Hosny
be8ec35934 [OS/2] Add recalcCodePageRanges
Ported from the ufo2ft code (which is port from FontForge code), with
some additional functions for parity with recalcUnicodeRanges.
2023-11-11 01:54:00 +02:00
Cosimo Lupo
335a1e56ec re-run black v23.10 on all .py files 2023-11-03 10:25:15 +00:00
Behdad Esfahbod
27932c525b [glyf] Add tests for getGlyphID() 2023-10-16 13:14:01 -04: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
Cosimo Lupo
d2fd4dfb24
C_O_L_R_test: add test for paint pointed to by both 3- and 4-byte offsets 2023-08-04 11:45:20 +01:00
Behdad Esfahbod
09464e5825 Comment 2023-06-27 09:53:37 -06:00
Behdad Esfahbod
9974a74a18 [cubic-glyf] Fix drawPoints() contour ending with cubic offCurve
Fixes https://github.com/fonttools/fonttools/issues/3189
2023-06-27 11:48:25 -04:00
Behdad Esfahbod
1138e5b0df [Tests] Add cmap to dot-cubic.ttf
So we can test it with svgPathPen.
2023-06-27 08:54:42 -06:00
Behdad Esfahbod
4ae0a93692 black
I'm sorry.
2023-06-27 08:49:31 -06:00
Behdad Esfahbod
9983ffe27a [cubic-glyf] Fix tests
Ouch.
2023-06-27 08:47:56 -06:00
Cosimo Lupo
4298c28e3c
add 2nd test contour to expose bug in dropImpliedOnCurvePoints
there's a bug whereby we don't correctly drop impliable oncurve if it occurs on the first point of the second contour.. because we forgot to update the contour start = last + 1...
2023-06-06 17:00:16 +01:00
Cosimo Lupo
5b93100616
also check endPtsOfContours in dropImpliedOnCurvePoints
as per review https://github.com/fonttools/fonttools/pull/3147#discussion_r1214708207

Also, don't do same work multiple times when dropping points from flags/endPtsOfContours arrays since these are supposed to be the same for all interpolatable glyphs
2023-06-05 12:11:17 +01:00
Cosimo Lupo
6a276d9f6a
dropImpliedOnCurvePoints: raise if incompatible, skip empty/composites 2023-06-02 13:51:28 +01:00
Cosimo Lupo
a039e1dda8
_g_l_y_f_test: add tests for dropImpliedOnCurvePoints 2023-06-01 19:27:32 +01:00
Ben Kiel
fb74c16d47 Ran black on code 2023-05-28 08:28:28 -05:00
Ben Kiel
c30f4e5074 fix lint error 2023-05-28 08:19:54 -05:00
Ben Kiel
bdc3afc468 Add in a test for writing private data 2023-05-28 08:12:11 -05:00
Behdad Esfahbod
a99e130b26 [Tests] Silence a few deprecation warnings 2023-05-24 14:38:41 -06:00
Jens Kutilek
85c80be6b6
Fix missing composite instructions in ttx (#3092)
* Fix calculation of haveInstructions
* Add test
2023-04-25 16:21:24 +02:00
Cosimo Lupo
df42e9d1e4
ttLib_main.py: test directly __main__.main(), coverage-py doesn't collect in subprocess 2023-04-24 11:48:36 +01:00