5026 Commits

Author SHA1 Message Date
Simon Cozens
392149ac1d Tidy up output, add machine readable JSON option
Example text output:

```
Glyph D was not compatible:
    Node 1 incompatible in path 0: curveTo in Coolangatta-Regular, lineTo in Coolangatta-Bold
    Node count differs in path 1: 7 in Coolangatta-Regular, 6 in Coolangatta-Bold
Glyph N was not compatible:
    Node 11 incompatible in path 0: curveTo in Coolangatta-Regular, lineTo in Coolangatta-Bold
Glyph v was not compatible:
    Node 7 incompatible in path 0: lineTo in Coolangatta-Regular, curveTo in Coolangatta-Bold
```

Example JSON output:

```
{
  "D": [
    {
      "type": "node_incompatibility",
      "path": 0,
      "node": 1,
      "master_1": "Coolangatta-Regular",
      "master_2": "Coolangatta-Bold",
      "value_1": "curveTo",
      "value_2": "lineTo"
    },
    {
      "type": "node_count",
      "path": 1,
      "master_1": "Coolangatta-Regular",
      "master_2": "Coolangatta-Bold",
      "value_1": 7,
      "value_2": 6
    }
  ],
  "N": [
    {
      "type": "node_incompatibility",
      "path": 0,
      "node": 9,
      "master_1": "Coolangatta-Regular",
      "master_2": "Coolangatta-Bold",
      "value_1": "curveTo",
      "value_2": "lineTo"
    }
  ],
  "v": [
    {
      "type": "node_incompatibility",
      "path": 0,
      "node": 7,
      "master_1": "Coolangatta-Regular",
      "master_2": "Coolangatta-Bold",
      "value_1": "lineTo",
      "value_2": "curveTo"
    }
  ]
}
```
2020-11-20 11:18:54 +00:00
Simon Cozens
08e2a6cdc1 Reformat with black 2020-11-20 11:18:54 +00:00
Simon Cozens
129e2413a0 Gracefully handle glyphset mismatches 2020-11-20 11:18:53 +00:00
Simon Cozens
fdbe0763df Catch explosion on open paths 2020-11-20 11:18:53 +00:00
Simon Cozens
61814d41f5 Allow UFO files to be used in varLib.interpolatable
The joys of well-defined interfaces.
2020-11-20 11:18:53 +00:00
Simon Cozens
f827a2a7f1 Turn on feaLib debugging from the environment
export FONTTOOLS_LOOKUP_DEBUGGING=1 to make a Debg table
2020-11-19 11:48:54 +00:00
Simon Cozens
3e964ad8da
Merge pull request #2101 from simoncozens/alternate-contextual-representations
[otlLib] Build format 1 and format 2 contextual lookups
2020-11-18 07:34:04 -08: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
Cosimo Lupo
3659702529
Bump version: 4.17.1 → 4.17.2.dev0 2020-11-16 17:36:48 +00:00
Cosimo Lupo
92081ea926
Release 4.17.1 2020-11-16 17:36:47 +00:00
Cosimo Lupo
e5439eb92b
colorLib: also treat lists [layerGlyph, paletteIndex] as COLRv0 layers
Don't be too strict about them being tuple type. Plist doesn't distinguish the two.
Fixes https://github.com/googlefonts/ufo2ft/issues/426
2020-11-16 16:38:22 +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
Cosimo Lupo
2a09da2e56
Bump version: 4.17.0 → 4.17.1.dev0 2020-11-12 16:08:44 +00:00
Cosimo Lupo
dd2eccaa7d
Release 4.17.0 2020-11-12 16:08:43 +00:00
Cosimo Lupo
e7494bbfb9
Merge pull request #2094 from fonttools/svg-arc-flags-no-spaces
svgLib: handle arc commands with bool flags not separated by space/comma
2020-11-11 19:20:31 +00:00
Cosimo Lupo
ed718db677
Merge pull request #2092 from fonttools/colrv1-latest
update colorLib to latest COLRv1 draft
2020-11-11 19:00:10 +00:00
rsheeter
cf2097f7c0 Update to builder per review discussion 2020-11-10 21:51:33 -08:00
rsheeter
4171e28f32 Update ttLib/tables to latest spec 2020-11-10 21:51:04 -08:00
justvanrossum
186032cb10 fixed formatting 2020-11-09 15:39:21 +01:00
rsheeter
cd39e6e246 Add a test 2020-11-06 14:59:52 -08:00
rsheeter
3069ad97ee Less errorprone message 2020-11-06 12:20:26 -08:00
rsheeter
5c83b5be47 Don't generate a PaintColrLayers for a list of 1 2020-11-04 21:59:30 -08:00
rsheeter
9698c71198 Change case of LayerCollector fields per comment 2020-11-04 18:47:16 -08:00
rsheeter
f531038bf9 Start hooking up revised PaintColrLayers 2020-11-04 14:36:43 -08:00
Cosimo Lupo
581416d77c
WIP: add buildPaintColrLayers 2020-11-03 19:11:24 +00:00
rsheeter
d285481215 Fix f-string 2020-11-03 11:06:23 -08:00
Just van Rossum
0ae6951b3b
Merge pull request #2082 from justvanrossum/gvar-ignore-empty-glyphs
[varLib] Interpret empty non-default glyphs as 'missing'
2020-11-02 18:19:09 +01:00
Cosimo Lupo
e992953474
swap xy and yx fields in COLRv1 Affine2x3 struct
following the latest draft
See discussion at https://github.com/googlefonts/colr-gradients-spec/pull/85
2020-10-30 19:29:59 +00:00
Cosimo Lupo
aad51ec4d9
svgLib: handle arc commands with bool flags not separated by space/comma
Some SVG authoring tool write arc commands without any space or comma around the boolean 'large-arc' and 'sweep' flags, leading our svg path parser to choke.
This makes the path parser smarter by special-casing arc command parsing so that it only consumes one character ('0' or '1') for these special boolean flags.
2020-10-29 15:31:47 +00:00
Cosimo Lupo
6c752f677f
rename Paint{ColorGlyph,ColrSlice} 2020-10-27 19:15:50 +00:00
Cosimo Lupo
d5e645a3c9
define Table.writeNullOffset() in subclasses; add comment as per review feedback 2020-10-27 18:35:36 +00:00
Cosimo Lupo
b654554109
add {First,Last}LayerIndex to PaintColorGlyph
as proposed in https://github.com/googlefonts/colr-gradients-spec/issues/86

The name of PaintColorGlyph may still change to PaintColorSlice, or PaintColrSlice, or PaintColorGlyphSlice, etc."
https://github.com/googlefonts/colr-gradients-spec/pull/87
2020-10-27 12:47:10 +00:00
Cosimo Lupo
1803283baf
colorLib: use IntEnum instead of 'magic' Paint format integers
makes code more readable
2020-10-26 18:14:13 +00:00
Cosimo Lupo
53b0034b35
colorLib: check that values fit fixed or integer types
continue building all glyphs, accummulate errors and only stop at the end

fixup
2020-10-23 17:09:44 +01:00
Jens Kutilek
b9c268943a
Add HashPointPen from psautohint (#2005)
* Add HashPointPen from psautohint (with changes)
* Decompose components
* Use format string and disambiguate critical changes
* Remove "getHash()" in favour of "hash" property
* Add transformation for composites
* Omit base glyph name from component hash
* Use untransformed coords for components
* Add tests
* Add example code

Co-authored-by: Cosimo Lupo <cosimo@anthrotype.com>
2020-10-22 11:16:24 +02:00
Cosimo Lupo
fc625963fa
otTables: dump the format name of Paint tables as XML comment 2020-10-20 19:03:17 +01:00
Cosimo Lupo
09fa418eb0
Merge remote-tracking branch 'origin/master' into colrv1-latest 2020-10-20 16:11:54 +01:00
Simon Cozens
10413d947a
Merge pull request #2067 from simoncozens/fealib-debug-subclassable
Only stash lookup location if buildLookups_ has cooperated
2020-10-19 09:14:06 +01:00