5541 Commits

Author SHA1 Message Date
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
Behdad Esfahbod
d0d8039bd3 [varLib.interpolatable] Check for wrong contour starting point
This seems to work already. Detects the example in the issue.
I also ran this on master-compatible UFOs built from Noto Sans,
and detected several issues. Confirmed visuall in AxisPraxis that
theta.sc for example has wrong starting point in that font:

Glyph theta.sc was not compatible:
    Contour start point differs: NotoSans-DisplayRegular, NotoSans-DisplaySemiBoldCondensed
    Contour start point differs: NotoSans-DisplayRegular, NotoSans-DisplaySemiBoldCondensed
    Contour start point differs: NotoSans-DisplaySemiBoldCondensed, NotoSans-DisplaySemiBold
    Contour start point differs: NotoSans-DisplaySemiBoldCondensed, NotoSans-DisplaySemiBold

There's a TODO item left to be done, which is to check for mirrored
contours and rotations thereof.

Towards fixing https://github.com/fonttools/fonttools/issues/1801
2022-03-31 19:17:22 -06:00
Khaled Hosny
4bb0e776a7
Merge pull request #2570 from fonttools/cff-TopDictIndex
[cffLib] Fix calls to TopDictIndex()
2022-04-01 00:24:17 +02:00
Behdad Esfahbod
c7781ec423 [cffLib] Remove leftover GlobalState
Fixes https://github.com/fonttools/fonttools/issues/1848
2022-03-31 15:34:11 -06:00
Behdad Esfahbod
64fc028eee [cffLib] Fix calls to TopDictIndex()
Fixes https://github.com/fonttools/fonttools/issues/1847
2022-03-31 15:33:05 -06:00
Just van Rossum
eaafd6089e
Clear AxisValueArray if it is empty after instantiating. (#2563)
* Clear AxisValueArray if it is empty after instantiating. Fixes #2562

* rearrange the code a bit for clarity
2022-03-25 16:42:17 +01:00
Khaled Hosny
a83f07670e Bump version: 4.31.2 → 4.31.3.dev0 2022-03-22 14:57:43 +02:00
Khaled Hosny
5e849a4479 Release 4.31.2 2022-03-22 14:57:32 +02:00
Khaled Hosny
47457b14d6
[varLib] Fix instantiating some SinglePos subtables (#2555) 2022-03-22 08:34:18 +00:00
Cosimo Lupo
0465f81b79 Bump version: 4.31.1 → 4.31.2.dev0 2022-03-18 13:30:10 +00:00
Cosimo Lupo
1a30ee825c Release 4.31.1 2022-03-18 13:30:10 +00:00
Cosimo Lupo
315705a58f [subset] fix subsetting OT-SVG when glyph id attribute is on the root <svg> element
Fixes https://github.com/fonttools/fonttools/issues/2548
2022-03-18 13:18:53 +00:00
Cosimo Lupo
caa32df25a Bump version: 4.31.0 → 4.31.1.dev0 2022-03-18 11:12:10 +00:00
Cosimo Lupo
422a10b61b Release 4.31.0 2022-03-18 11:12:10 +00:00
Cosimo Lupo
d7169774ac
Merge pull request #2551 from fonttools/unlazy
add ensureDecompiled method to decompile all the tables irrespective of lazy attribute
2022-03-18 10:55:48 +00:00
Cosimo Lupo
25746a3600 add clarifying comment as per review 2022-03-18 09:23:07 +00:00
Cosimo Lupo
ab8fc321a7 otBase: also return name and index from iterSubTables
makes it more useful for constructing generic traversals of trees of otTables
2022-03-17 17:47:41 +00:00
Cosimo Lupo
43d2ee2822 Revert "return self so one can do font=TTFont(file).ensureDecompiled()"
This reverts commit 61e7b294483cbe729b1437804406b4571ae57cfb.
2022-03-17 15:55:20 +00:00
Cosimo Lupo
61e7b29448 return self so one can do font=TTFont(file).ensureDecompiled() 2022-03-17 15:44:02 +00:00
Cosimo Lupo
46f33357cb TTFont: don't load all tables upon opening even with lazy=False
one has to call TTFont.ensureDecompiled to load everything
2022-03-17 13:48:40 +00:00
Cosimo Lupo
795bccd966 TTFont: load all on open w/ lazy=False; add ensureDecompiled
Make lazy=False actually do what it says, 'load everything eagerly'. It feels weird that one has to, not only say, open with lazy=False, but also have to load each tables individually... Didn't I say don't be lazy?!

Also it can be useful to get to a eager, non-lazy font whether or not it was originally loaded lazily, so I added an ensureDecompiled method that decompiles all the tables and calls ensureDecompiled for those (e.g. cmap, glyf and otData-driven tables like GSUB, GPOS, etc.) that respect the lazy attribute.
2022-03-17 13:01:22 +00:00
Simon Cozens
4f8c01909a
Handle merging SinglePos with valueformat=0 (#2550) 2022-03-17 13:01:06 +00:00
Cosimo Lupo
ee27b73d7c BaseTTXConverter: add ensureDecompiled method
to unlazify a whole tree of otTables, recursively
2022-03-17 12:54:22 +00:00
Cosimo Lupo
64dc37fc01 otBase: add iterSubTables method to iterate over all BaseTables
can be useful to traverse a tree of otTables
2022-03-17 12:53:06 +00:00
Cosimo Lupo
7f1e5e1fc7 glyf: add ensureDecompiled method
to 'expand' all the lazy glyphs
2022-03-17 12:51:56 +00:00
Cosimo Lupo
4119d8f582 cmap: if lazy=False, decompile all cmap subtables upfront
previously cmap was completely ignoring lazy attribute, always loading lazily
2022-03-17 12:46:57 +00:00
Cosimo Lupo
83ee6bcdab ttCollection: don't close file inside init if lazy=True
Fixes 'seek of closed file' error #2549
2022-03-17 12:30:40 +00:00
Cosimo Lupo
71a5bf1b51
Merge pull request #2544 from fonttools/set-glyf-glyph-order
Also update glyf's glyphOrder when calling TTFont.setGlyphOrder()
2022-03-14 17:11:57 +00:00
Cosimo Lupo
c08bfc1e1a ttCollection: fix 'ResourceWarning: unclosed file'
Thanks Mike L.
2022-03-10 18:12:23 +00:00
Cosimo Lupo
ebe313d70e Bump version: 4.30.0 → 4.30.1.dev0 2022-03-10 11:38:46 +00:00
Cosimo Lupo
71e5ed001b Release 4.30.0 2022-03-10 11:38:45 +00:00
Cosimo Lupo
3529a44f75 Update glyf's glyphOrder when calling TTFont.setGlyphOrder()
https://github.com/fonttools/fonttools/issues/2060#issuecomment-1063932428
2022-03-10 11:29:17 +00:00
Adam Twardoch
54e2072ecc
Add debug logger showing the glyph name for which gvar is built
When building gvar, some situations cause fontmake/varLib to fail, for example if a component has a coordinate that's >32k or <-32k. This adds a debug line that prints each glyph name for which gvar is built, so it’s easier to pinpoint where the faulty glyph is.
2022-03-09 18:09:52 +01:00
Cosimo Lupo
ac4d5611ac VarLibMergeError has cause and stack attributes, use them in subclasses
https://github.com/googlefonts/fontmake/issues/858
2022-02-25 15:39:37 +00:00
Cosimo Lupo
180d8d7de9 varLib.errors: fix typo
Fixes #2534
2022-02-25 15:05:27 +00:00
Cosimo Lupo
c2ad857050
Merge pull request #2528 from moontypespace/improve_buildStatTable
Add windowsNames and macNames parameters to buildStatTable
2022-02-11 18:23:54 +00:00
Olli Meier
cf6d25cc9e As recommended from anthrotype I did: $ black Lib/fontTools/otlLib/builder.py 2022-02-11 15:55:01 +01:00
Olli Meier
68fa3bbd47 Cleaning code based on feedback from Just 2022-02-10 22:13:58 +01:00
Olli Meier
d77ec968a3
Update Lib/fontTools/otlLib/builder.py
Co-authored-by: Just van Rossum <justvanrossum@gmail.com>
2022-02-10 22:00:18 +01:00
Olli Meier
459f18ab4a
Update Lib/fontTools/otlLib/builder.py
Co-authored-by: Just van Rossum <justvanrossum@gmail.com>
2022-02-10 21:59:48 +01:00
Olli Meier
d5406feed7
Update Lib/fontTools/otlLib/builder.py
Co-authored-by: Just van Rossum <justvanrossum@gmail.com>
2022-02-10 21:59:09 +01:00
Olli Meier
e968e8fd7f Based on the discussion with Just and anthrotype: Undo the changes in the name table and extend unittests. If there are inconsistencies in the name table, it's ok to create new name IDs, even if this might not be the most efficient way of creating the name table. 2022-02-10 21:24:51 +01:00
Olli Meier
513307237b Get rid of findName and change the function. 2022-02-10 18:28:45 +01:00
Olli Meier
ad1d82f810 Some more changes. Not sure about this. 2022-02-10 17:56:42 +01:00
Olli Meier
9028a53d3b based on feedback 'anthrotype' I use 'windowsNames' and 'macNames' in STAT table functions and 'windows' and 'mac' in name table functions. 2022-02-10 15:57:56 +01:00
derwind
b437417b71
Added the ability to recreate the PS stream (#2504)
* added the ability to recreate the PS stream

This fixes #2503
2022-02-10 15:53:12 +01:00
Olli Meier
6014cd8ae5 based on Just Van Rossum's feedback: replace variables. 2022-02-10 15:39:51 +01:00
Olli Meier
512d1a219c cleaning code. 2022-02-10 15:16:28 +01:00