Martin Hosken
75f314b149
Fix class2defs self overlapping glyphsets
2020-12-01 23:38:12 +07:00
Simon Cozens
fb9d34af1b
Try again...
2020-11-17 12:05:52 +00:00
Simon Cozens
df5527bccc
Revert "Remove unneeded populateDefaults". removed wrong line...
...
This reverts commit a043e35f1ca287431bd63aa566d50d7e70634fea.
2020-11-17 12:05:31 +00:00
Simon Cozens
635df38f32
Comment to explain copy
2020-11-17 09:13:30 +00:00
Simon Cozens
8e524e41f5
"if not x in" -> "if x not in"
2020-11-17 09:12:38 +00:00
Simon Cozens
7bbff5d21f
Re-case variable names (and clarify)
2020-11-17 09:11:56 +00:00
Simon Cozens
1a6f53dfc9
Explain weird (list(foo))[0] thing
2020-11-17 09:11:37 +00:00
Simon Cozens
a043e35f1c
Remove unneeded populateDefaults
2020-11-17 09:08:44 +00:00
Simon Cozens
be7d9a33a3
Raise on unknown format, also reorder to be more sensible
2020-11-17 09:08:20 +00:00
Simon Cozens
07b186a41e
Build most compact lookup representation
...
This builds all possible representations of a contextual lookup and then selects the most copact
2020-11-16 13:42:07 +00:00
Simon Cozens
f6fac3cbbf
Helper function to determine compiled size of a lookup
2020-11-16 13:41:19 +00:00
Simon Cozens
ef002fbcc3
Add format 1 subtable builder
2020-11-16 13:41:02 +00:00
Simon Cozens
8b3963a306
Add format 2 subtable builder
2020-11-16 13:40:50 +00:00
Simon Cozens
fe075a4a0e
Helper functions for building rulesets and rules for F1/F2 lookups
2020-11-16 13:39:55 +00:00
Simon Cozens
88ed5e2c9e
Refactor out part of format3 builder which handles LookupRecords
...
This will allow the same code to be used by other contextual formats (f1, f2)
2020-11-16 13:39:07 +00:00
Simon Cozens
85edf0e380
Use the ChainContextualRule class instead of bare tuples
2020-07-22 14:20:50 +01:00
Simon Cozens
b9f2482c42
Add a ChainContextualRule class
2020-07-22 14:20:50 +01:00
Simon Cozens
ae5e000e29
Run black on all these too.
2020-07-15 17:16:12 +01:00
Simon Cozens
69a76e9dd8
Reformat with black.
2020-07-15 13:25:33 +01:00
Simon Cozens
c1a885ad55
Missed stylistic fix
2020-07-11 19:58:06 +01:00
Simon Cozens
b6f7b2dc4b
Stylistic fixes from feedback
2020-07-11 19:54:52 +01:00
Simon Cozens
8c3dfc4e33
Refactor subtable/lookup record building code
...
It's a bit gross, but I'm blaming OpenType for that. I'm doing this now because otherwise it would be even more repetitive once we start adding format 1 Rule and Ruleset subtables.
2020-07-07 17:35:16 +01:00
Simon Cozens
bc0f69884e
Thinko
2020-07-07 13:28:44 +01:00
Simon Cozens
f04ffe4131
Make non-chaining contextuals where we can. ( Fixes #1856 )
2020-07-07 13:19:36 +01:00
Simon Cozens
df3e08bb22
Add a function to set coverage for GSUB5/GPOS7 lookups
2020-07-07 13:15:27 +01:00
Simon Cozens
06c270582a
Begin to use the new rulesets. Be explicit that we are building Format 3 lookups right now.
2020-07-07 12:48:53 +01:00
Simon Cozens
9f4cc2f1cb
Introduce the concept of a ClassContextualRuleSet
...
Currently unused but will be super helpful for optimizing the formats of contextual lookups.
* Splits the rules of a class contextual lookup based on explicit subtable breaks
* Returns various properties on the ruleset to help determine appropriate layout format.
* (More properties, such as "touched glyphs", planned - will be added when needed.)
2020-07-07 12:44:25 +01:00
Simon Cozens
1ed5916a8a
Fix *all* docs about markFilterSet, not just the first one...
2020-07-03 12:50:57 +01:00
Simon Cozens
ece76d36e2
Unnecessary comments
2020-07-03 12:39:21 +01:00
Simon Cozens
f54528a70b
Remove unused arguments to ClassPairPosSubtableBuilder
2020-07-03 12:39:11 +01:00
Simon Cozens
8e0b1fbfe2
Allow location to be optional.
2020-07-03 12:35:55 +01:00
Simon Cozens
c43b58c973
Force mark filtering flag set.
2020-07-03 12:35:43 +01:00
Simon Cozens
db8948b654
Document otlLib.builder, high-level lookup builders.
...
Essentially the documentation from #1995 , incorporates @dscorbett
feedback.
2020-07-03 11:38:29 +01:00
Simon Cozens
6364d36633
[otlLib] Refactor chained contextual builders ( #2007 )
...
* Introduce a new subclass for chained contextual (sub and pos)
* Rename .substitutions to .rules in subst builders to allow for code reuse
* Make format of subtable break marker tuple common between sub/pos
Note that prior to this patch, add_subtable_break in a Subst builder adds:
(self.SUBTABLE_BREAK_, self.SUBTABLE_BREAK_, self.SUBTABLE_BREAK_, self.SUBTABLE_BREAK_)
while add_subtable_break in a Pos builder adds:
(self.SUBTABLE_BREAK_, self.SUBTABLE_BREAK_, self.SUBTABLE_BREAK_, [self.SUBTABLE_BREAK_])
This is messy. If we read the first element from the tuple instead of the last one to test if a rule is a subtable break, we can make the marker tuple the same.
* And now the subtable break code can be hoisted into superclass
* These helper methods will make the build routine common
* Hoist common build method to superclass
The diff doesn’t show it very clearly because it’s being too clever, but all I’ve done is moved one method. Everything works apart from the error message, which comes next.
* Fix the error message
2020-07-02 18:40:20 +01:00
Simon Cozens
ebfa4ba1fe
Move feature builders to otlLib
...
Refactors feaLib, moving code which builds OpenType lookups into otlLib. Note that this changes feaLib's concept of `location` from a tuple to an object.
2020-07-02 14:09:10 +01:00
Just van Rossum
90c7c7fae1
Fix for #1985 : ensure that the AxisNameID in the STAT table is > 255 ( #1986 )
...
Fix for #1985 :
* ensure that the AxisNameID in the STAT table is not less than 256. This needed an additional argument to the addMultiLingualName() name table method.
* fvar axis name IDs must also not be less than 256, just like STAT axis names.
2020-06-08 19:39:28 +02:00
Just van Rossum
d6bb38c7e6
[otlLib.builder] Add function to build STAT table from high-level description ( #1926 )
...
* added a function to build a STAT table: `fontTools.otlLib.builder.buildStatTable()`
* make `varLib._add_stat()` a client of `buildStatTable()`
2020-05-09 16:08:11 +02:00
Nikolaus Waxweiler
01328213c7
Remove __future__ imports
2019-08-09 12:20:13 +01:00
Cosimo Lupo
7f82d11156
otlLib: return namedtuple from _makeDeviceTuple
...
makes code slightly more readable.
2019-06-18 16:00:39 +01:00
ReadRoberts
b44c761526
[oltLib.builder] Fix bug in building a variation font.
...
The logic for building a Device subtable didn't know about the VariationIndex flavor of a ValueRecord Device subtable.
2019-06-12 14:31:38 -07:00
Miguel Sousa
45596108e2
(Re)calculate OS/2.usMaxContext value
...
The value is only modified in the context of fontBuilder or subset. It will NOT be modified when using ttx.
maxContextCalc.py was copied from https://github.com/googlefonts/ufo2ft/blob/master/Lib/ufo2ft/maxContextCalc.py
Fixes #1191
Fixes #466
2019-04-24 18:31:12 -07:00
Martin Hosken
1a92b3c21d
Comment changes to help clarify
2019-04-15 14:24:25 +07:00
Martin Hosken
06ed699785
Compress type 1 GPOS tables better
2019-03-15 10:50:13 +07:00
Cosimo Lupo
78ad48eaf3
Move all *_test.py modules and test data to external Tests/ folder
2017-01-16 09:14:12 +00:00
Cosimo Lupo
49bcbb916b
consistently do sys.exit(unittest.main()) in all test modules
...
So that when run as scrips they report test failures with exit code
Follow up on b7bb391033ef3255c90134da3d7aef50d2d5326d
2017-01-11 13:05:35 +00:00
Cosimo Lupo
dd0cf31d4e
otlLib.builder: don't specialcase tuple as it's immutable and returns itself
...
https://github.com/fonttools/fonttools/pull/793#discussion_r94358989
2017-01-04 13:15:18 +01:00
Cosimo Lupo
3b3e74f90b
builder.py: only sort ClassDefBuilder input glyphs if they are unsorted
...
This fixes broken tests after 9e76d16, and should finally close https://github.com/fonttools/fonttools/issues/766
2016-12-31 15:51:53 +01:00
Cosimo Lupo
3ff25948ef
Revert "builder.py: try to fix non-deterministic ClassDef"
...
This reverts commit 9e76d1677cf955369f6f98755ac646dcf8af26b0.
2016-12-31 15:22:26 +01:00
Cosimo Lupo
9e76d1677c
builder.py: try to fix non-deterministic ClassDef
...
See:
https://github.com/fonttools/fonttools/issues/766#issuecomment-269858646
7d1ddb237e (commitcomment-20333287)
Should fix https://github.com/fonttools/fonttools/issues/766
2016-12-31 13:53:08 +01:00
Behdad Esfahbod
a0019a3e75
Minor
2016-12-30 19:18:15 -05:00