9506 Commits

Author SHA1 Message Date
Cosimo Lupo
af6804bed5 make USE_HARFBUZZ_REPACKER a 3-state option, defaults to auto
if explicitly enabled, it will raise ImportError if uharfbuzz is not found, and will propagate the uharfbuzz error instead of silently falling back to the pure-python serializer
2022-04-21 18:11:20 +01:00
Cosimo Lupo
7588062413 [configTools] remove cached set and simplify checking option id 2022-04-21 17:18:32 +01:00
Cosimo Lupo
e9bec87d1a [configTools] Make Option eq=False so cmp/hash by id 2022-04-21 16:21:53 +01:00
Cosimo Lupo
ade9ce1173 [testTools] FakeFont needs a cfg attribute too 2022-04-21 15:56:11 +01:00
Cosimo Lupo
ec79257960 [optimize.gpos] declare/re-export option from module 2022-04-21 15:46:12 +01:00
Cosimo Lupo
4160f05242 [subset_test] test disabling hb repacker, and capture logging 2022-04-21 15:46:12 +01:00
Cosimo Lupo
1bb9607b72 [subset] add --no-harfbuzz-repacker CLI flag 2022-04-21 15:46:12 +01:00
Cosimo Lupo
c204537073 [otBase] check USE_HARFBUZZ_REPACKER in TTFont.cfg, add more logging 2022-04-21 15:46:12 +01:00
Cosimo Lupo
fea57a5cea [config] register USE_HARFBUZZ_REPACKER option 2022-04-21 15:46:12 +01:00
Cosimo Lupo
e5d674ea5e [configTools] accept either str or Option in Config mapping API 2022-04-21 15:46:12 +01:00
Cosimo Lupo
9a0dfbd403 [configTools] add copy constructor to Options 2022-04-21 14:31:58 +01:00
Cosimo Lupo
5aa8986179 [configTools] add __repr__ to Options mapping
print the default value only for brevity
2022-04-21 14:31:58 +01:00
Cosimo Lupo
cc6b12582c
Merge pull request #2588 from fonttools/hb-repack-mock-test
mock hb.repack error to test pure-python serializer gets used on failure
2022-04-19 16:19:10 +01:00
Cosimo Lupo
f6e212cc2d subset_test: mock hb.repack raising an error to test pure-python fallback 2022-04-19 15:40:58 +01:00
Cosimo Lupo
822bbb2c69 subset_test: remove unused return value 2022-04-19 15:40:58 +01:00
Cosimo Lupo
60d2727a9b subset_test: convert from unittest to pytest-style tests 2022-04-19 15:40:58 +01:00
Just van Rossum
a293606fc8
Merge pull request #2585 from justvanrossum/cmap-minor-cleanup
[cmap] don't handle expected case in exception handler
2022-04-19 11:44:27 +02:00
Just van Rossum
0ffe320b77 [cmap] don't handle expected case in exception handler, to avoid confusing tracebacks, such as seen in #2584 2022-04-18 09:15:01 +02:00
Cosimo Lupo
e92dd05101
Merge pull request #2552 from qxliu76/add_hb_repack
Use Harfbuzz Repacker for packing GSUB/GPOS tables
2022-04-14 20:03:18 +01:00
Cosimo Lupo
2c458719de
Merge pull request #2580 from skef/bg1899
Handle implicit CFF2 closepath within T2OutlineExtractor
2022-04-14 20:03:01 +01:00
Qunxin Liu
fe196bf88e Use Harfbuzz Repacker for packing GSUB/GPOS tables 2022-04-14 10:42:50 -07:00
Jany Belluz
afa0998be2
Merge pull request #2416 from daltonmaag/add-conf
Add config module as per #2349
2022-04-14 16:54:18 +02:00
Jany Belluz
dbef683624 [config] Add documentation 2022-04-14 15:23:38 +01:00
Jany Belluz
268fbac85c [config] Add tests 2022-04-14 15:23:22 +01:00
Jany Belluz
abc0441957 [config] Add new config module and use it for GPOS compression level 2022-04-14 15:23:02 +01:00
Jany Belluz
e530c2fa1c [misc] Add new configTools module 2022-04-14 15:20:52 +01:00
Skef Iterum
520ee0236d Handle implicit CFF2 closePath within T2OutlineExtractor 2022-04-14 07:19:44 -07:00
Jany Belluz
5b3db49d72
Merge pull request #2436 from daltonmaag/impl-designspace-v5 2022-04-14 16:16:32 +02:00
Jany Belluz
2ea5dc3496 [varLib] Add support for designspace 5 + STAT generation + tests 2022-04-14 15:05:50 +01:00
Jany Belluz
5a842cc249 [designspaceLib] Update documentation and add version 5 2022-04-14 15:05:20 +01:00
Jany Belluz
a7974986c3 [designspaceLib] Add designspace 5 tests 2022-04-14 15:04:38 +01:00
Jany Belluz
35e560603e [designspaceLib] Add designspace 5 code 2022-04-14 15:03:58 +01:00
Just van Rossum
169731c7f5
[CFF/T2] Ensure that pen.closePath() gets called for CFF2 charstrings (#2577)
* [CFF/T2] Make sure to call pen.closePath() at the end of a CFF2/T2 charstring. Fixes #2455

* Add test case to verify pen.closePath() behavior
2022-04-09 14:50:59 +02:00
justvanrossum
c6cd6cf421 [TTFont] sync doc string with the one in _c_m_a_p.py (see also #1367) 2022-04-09 08:31:03 +02:00
Behdad Esfahbod
17f71c0eb7 [cmap] Document rationale for getBestCmap choice of subtable
Fixes https://github.com/fonttools/fonttools/issues/1367
2022-04-08 13:27:44 -06:00
Cosimo Lupo
43e4315009 Bump version: 4.32.0 → 4.32.1.dev0 2022-04-08 16:07:06 +01:00
Cosimo Lupo
84f3c50099 Release 4.32.0 2022-04-08 16:07:06 +01:00
Cosimo Lupo
ae7ae9a5e5 Update changelog 2022-04-08 16:06:52 +01:00
Simon Cozens
2d62a2ac9e
Disable GSUB5 optimization (#2540)
* Disable GSUB5/GPOS7 optimization

* Revert "Fixup test expectations"

This reverts commit 7db13c9872884772312727e3478fb36ed9883004.

* Revert "Rename GPOS8->GPOS7"

This reverts commit 6d4c5fe31c9199e6d3e46cd0808e7640d1610e75.

* Revert "Fix varlib test expectations - now badly named."

This reverts commit 4adea942cc73b6afe58e00278da6cb3795935970.

* Allow GSUB5, disable GPOS7

* Revert "Revert "Fixup test expectations""

This reverts commit 42993ae6917f8f6e4c31f4be123caca24d27d2da.

* Fix up expectations
2022-04-08 15:54:34 +01:00
Cosimo Lupo
7ee2c9d891 testTools: factor our method to strip variable items from ttx dumps
it was scattered here and there, so define it once and reuse everywhere needed
2022-04-05 18:34:30 +01:00
justvanrossum
9ffb2e0f75 removed cringy comments from a long long long long time ago 2022-04-05 17:02:34 +02:00
Behdad Esfahbod
cace698bb0
Merge pull request #2571 from fonttools/interpolatable-contour-starting-point
[varLib.interpolatable] Check for wrong contour starting point
2022-04-01 15:22:24 -06:00
Behdad Esfahbod
f0214415cc [interpolatable] Fix assert 2022-04-01 14:36:03 -06:00
Behdad Esfahbod
86b5d7103d [interpolatable] Downgrade assert 2022-04-01 14:00:22 -06:00
Behdad Esfahbod
6b4e2e7147 [ufoLib / interpolatable] Wire up outputImpliedClosingLine parameter
ufoLib's glyph draw() was passing outputImpliedClosingLine=False to
PointToSegmentPen(). This was causing incompatible nodes in
interpolatable tool for certain fonts, like this in NotoSansDevanagari:

Glyph dabhadeva was not compatible:
    Node count differs in path 1: 23 in NotoSansDevanagari-Bold, 24 in NotoSansDevanagari-CondensedBold
    Node count differs in path 1: 24 in NotoSansDevanagari-CondensedBold, 23 in NotoSansDevanagari-CondensedLight

Because a final lineto before a closepath was being elided or not in
some masters but not others.  Wire up the parameter and control it
from interpolatable tool to fix this.
2022-04-01 13:14:39 -06:00
Behdad Esfahbod
3165cc132a [interpolatable] Add mirrored rotated contour for starting-point check
This further found an issue in NotoSansArabic which I visually verified:

Glyph qafLamAlefMaksuraabove-ar was not compatible:
    Contour start point differs: NotoSansArabic-CondensedLight, NotoSansArabic-CondensedSemiBold
    Contour start point differs: NotoSansArabic-CondensedLight, NotoSansArabic-CondensedSemiBold
    Contour start point differs: NotoSansArabic-CondensedSemiBold, NotoSansArabic-Condensed
    Contour start point differs: NotoSansArabic-CondensedSemiBold, NotoSansArabic-Condensed
2022-03-31 20:23:54 -06:00
Behdad Esfahbod
9e96b95467 [interpolatable] Don't keep contour-start-point index 2022-03-31 20:18:44 -06:00
Behdad Esfahbod
b705bcdc8f [interpolatable] When checking for contour start point error allow for 5% error 2022-03-31 20:16:55 -06:00
Behdad Esfahbod
745631d16b [interpolatable] In diff-contour-order, allow for 5% cost difference
Reduces false-positives, as in this one in NotoSansArabic:

Glyph asteriskArt-ar was not compatible:
    Contour order differs: [0, 1, 2, 3, 4, 5] in NotoSansArabic-CondensedBold, [0, 3, 2, 1, 4, 5] in NotoSansArabic-CondensedLight
2022-03-31 19:52:48 -06:00
Behdad Esfahbod
3a846a5389 [interpolatable] Remove the empirical high-cost error
This was very empirical and has no theoretical background. Experiment
shows that this is mostly false-positive.
2022-03-31 19:37:00 -06:00