[COLRv1] Various changes to sync with the latest CORLv1 draft spec. In particular:
define COLR.VarIndexMap, remove/inline ColorIndex struct, add VarIndexBase to PaintVar* tables (#2372);
add reduced-precicion specialized transform Paints;
define Angle as fraction of half circle encoded as F2Dot14;
use FWORD (int16) for all Paint center coordinates;
change PaintTransform to have an offset to Affine2x3 (#2359).
[ttLib] when importing XML, only set sfntVersion if the font has no reader and is empty (#2376)
4.25.1
[ttGlyphPen] Fixed bug in TTGlyphPointPen, whereby open contours (i.e. starting with segmentType "move") would throw NotImplementedError. They are now treated as if they are closed, like with the TTGlyphPen (#2365, #2366).
4.25.0
[tfmLib] Added new library for parsing TeX Font Metric (TFM) files (#2354).
[TupleVariation] Make shared tuples order deterministic on python < 3.7 where Counter (subclass of dict) doesn't remember insertion order (#2351, #2353).
[otData] Renamed COLRv1 structs to remove 'v1' suffix and match the updated draft spec: 'LayerV1List' -> 'LayerList', 'BaseGlyphV1List' -> 'BaseGlyphList', 'BaseGlyphV1Record' -> 'BaseGlyphPaintRecord' (#2346).
Added 8 new PaintScale* tables: with/without centers, uniform vs non-uniform.
Added *AroundCenter variants to PaintRotate and PaintSkew: the default versions no longer have centerX/Y, but default to origin.
PaintRotate, PaintSkew and PaintComposite formats were re-numbered.
NOTE: these are breaking changes; clients using the experimental COLRv1 API will have to be updated (#2348).
[pointPens] Allow GuessSmoothPointPen to accept a tolerance. Fixed call to math.atan2 with x/y parameters inverted. Sync the code with fontPens (#2344).
[post] Fixed parsing post table format 2.0 when it contains extra garbage at the end of the stringData array (#2314).
[subset] drop empty features unless 'size' with FeatureParams table (#2324).
[otlLib] Added otlLib.optimize module; added GPOS compaction algorithm. The compaction can be run on existing fonts with fonttools otlLib.optimize or using the snippet compact_gpos.py. There's experimental support for compacting fonts at compilation time using an environment variable, but that might be removed later (#2326).
4.24.4
[subset/instancer] Fixed AttributeError when instantiating a VF that contains GPOS ValueRecords with Device tables but without the respective non-Device values (e.g. XAdvDevice without XAdvance). When not explicitly set, the latter are assumed to be 0 (#2323).
4.24.3
[otTables] Fixed AttributeError in methods that split LigatureSubst, MultipleSubst and AlternateSubst subtables when an offset overflow occurs. The Format attribute was removed in v4.22.0 (#2319).
4.24.2
[ttGlyphPen] Fixed typing annotation of TTGlyphPen glyphSet parameter (#2315).
Fixed two instances of DeprecationWarning: invalid escape sequence (#2311).
4.24.1
[subset] Fixed AttributeError when SinglePos subtable has None Value (ValueFormat 0) (#2312, #2313).
4.24.0
[pens] Add ttGlyphPen.TTGlyphPointPen similar to TTGlyphPen (#2205).
4.23.1
[subset] Fix KeyError after subsetting COLR table that initially contains both v0 and v1 color glyphs when the subset only requested v1 glyphs; we were not pruning the v0 portion of the table (#2308).
[colorLib] Set LayerV1List attribute to None when empty, it's optional in CORLv1 (#2308).
[COLRv1] Various changes to sync with the latest CORLv1 draft spec. In particular:
define COLR.VarIndexMap, remove/inline ColorIndex struct, add VarIndexBase to PaintVar* tables (#2372);
add reduced-precicion specialized transform Paints;
define Angle as fraction of half circle encoded as F2Dot14;
use FWORD (int16) for all Paint center coordinates;
change PaintTransform to have an offset to Affine2x3;
[ttLib] when importing XML, only set sfntVersion if the font has no reader and is empty (#2376)
4.25.1 (released 2021-07-16)
[ttGlyphPen] Fixed bug in TTGlyphPointPen, whereby open contours (i.e. starting
with segmentType "move") would throw NotImplementedError. They are now treated
as if they are closed, like with the TTGlyphPen (#2364, #2366).
4.25.0 (released 2021-07-05)
[tfmLib] Added new library for parsing TeX Font Metric (TFM) files (#2354).
[TupleVariation] Make shared tuples order deterministic on python < 3.7 where
Counter (subclass of dict) doesn't remember insertion order (#2351, #2353).
[otData] Renamed COLRv1 structs to remove 'v1' suffix and match the updated draft
spec: 'LayerV1List' -> 'LayerList', 'BaseGlyphV1List' -> 'BaseGlyphList',
'BaseGlyphV1Record' -> 'BaseGlyphPaintRecord' (#2346).
Added 8 new PaintScale* tables: with/without centers, uniform vs non-uniform.
Added *AroundCenter variants to PaintRotate and PaintSkew: the default
versions no longer have centerX/Y, but default to origin.
PaintRotate, PaintSkew and PaintComposite formats were re-numbered.
NOTE: these are breaking changes; clients using the experimental COLRv1 API will
have to be updated (#2348).
[pointPens] Allow GuessSmoothPointPen to accept a tolerance. Fixed call to
math.atan2 with x/y parameters inverted. Sync the code with fontPens (#2344).
[post] Fixed parsing post table format 2.0 when it contains extra garbage
at the end of the stringData array (#2314).
[subset] drop empty features unless 'size' with FeatureParams table (#2324).
[otlLib] Added otlLib.optimize module; added GPOS compaction algorithm.
The compaction can be run on existing fonts with fonttools otlLib.optimize
or using the snippet compact_gpos.py. There's experimental support for
compacting fonts at compilation time using an environment variable, but that
might be removed later (#2326).
4.24.4 (released 2021-05-25)
[subset/instancer] Fixed AttributeError when instantiating a VF that
contains GPOS ValueRecords with Device tables but without the respective
non-Device values (e.g. XAdvDevice without XAdvance). When not
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps fonttools[woff] from 4.23.0 to 4.25.2.
Release notes
Sourced from fonttools[woff]'s releases.
Changelog
Sourced from fonttools[woff]'s changelog.
... (truncated)
Commits
f3a9030
Release 4.25.21c10012
Update changelog [skip ci]2f1fbd6
Merge pull request #2372 from fonttools/colrv1-var-idx-mapb01ea60
[ttLib] when importing XML, only set sfntVersion if the font has no reader an...c96c3ef
Merge pull request #2359 from fonttools/colrv1-transform-reduced-precb74ffb4
test roundtripping variable COLRv1 with a working VarIndexMap and VarStore29a2ebf
omit default VarIndexBase1187167
[subset] fixed CPAL pruning after removal of ColorIndex6ba0163
fix C_O_L_R_test.py following recent changese5d0c00
fix colorLib tests after adding VarIndexBase, ColorIndex removed, etc.Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)