Cosimo Lupo
581416d77c
WIP: add buildPaintColrLayers
2020-11-03 19:11:24 +00: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
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
73073be3c2
Affine2x3 struct should be inlined inside PaintTransform
...
Not pointed to by an Offset32.
Thanks Dominik for spotting this!
2020-10-12 14:32:23 +01:00
Cosimo Lupo
7f6a05b007
otData: add new COLR Paint struct definitions, update to latest draft
...
Update C_O_L_R_test.py accordingly.
a
2020-10-09 19:36:35 +01:00
Cosimo Lupo
09c0e42031
Partly revert "use 32-bit GlyphIDs in COLRv1 baseGlyphs and layers"
...
This reverts commit 690080b14d9a4f193092ffc172a39b3e212d307c.
We keep 16-bit GlyphIDs for COLRv1 tables, at least for now
https://github.com/googlefonts/colr-gradients-spec/pull/24
I keep the GlyphID32 converter in case we may need it in the future.
2020-07-08 16:06:45 +01:00
Cosimo Lupo
ff79338607
rename radial gradient Paint.Affine attribute to Transform
...
as suggested by Peter Constable in
https://github.com/PeterConstable/OT_Drafts/blob/master/COLR_V1/COLRv1formats_rev3.md#paintformat3-table-conicalradial-gradient
2020-07-02 12:21:12 +01:00
Cosimo Lupo
ac0a755d20
make linear/radial gradient 'point-less', inline x0,y0,x1,y1,...
...
https://github.com/googlefonts/colr-gradients-spec/issues/21
2020-07-02 12:11:40 +01:00
Cosimo Lupo
dea9896421
rename COLR Color -> ColorIndex, transparency to alpha
...
https://github.com/googlefonts/colr-gradients-spec/issues/17
https://github.com/googlefonts/colr-gradients-spec/issues/19
2020-07-02 10:27:47 +01:00
Cosimo Lupo
ff7dc9a1c5
Rename: Var* types: Scalar->Fixed, NormalizedScalar->F2Dot14, etc.
...
VariablePosition -> VarInt16
VariableDistance -> VarUInt16
cf. https://github.com/googlefonts/colr-gradients-spec/issues/17
2020-07-01 20:13:14 +01:00
Cosimo Lupo
690080b14d
use 32-bit GlyphIDs in COLRv1 baseGlyphs and layers
...
For forward-compatibility, see https://github.com/googlefonts/colr-gradients-spec/issues/8
2020-07-01 19:50:48 +01:00
Cosimo Lupo
b215c000df
Rename LayerV1Array to LayerV1List, like with BaseGlyphV1List
...
See https://github.com/googlefonts/colr-gradients-spec/issues/14#issuecomment-652542829
2020-07-01 18:22:03 +01:00
Cosimo Lupo
5f18d9891c
rename BaseGlyphV1Array to BaseGlyphV1List
...
As suggested by Peter Constable in https://github.com/googlefonts/colr-gradients-spec/issues/14 and https://github.com/googlefonts/colr-gradients-spec/issues/18
2020-07-01 18:16:07 +01:00
Cosimo Lupo
d2bbfdb610
Merge remote-tracking branch 'origin/master' into otdata-colr
2020-03-12 17:42:56 +00:00
Cosimo Lupo
49d504d970
otData: fix Offset decriptions for COLRv1 subtables
2020-03-11 19:01:26 +00:00
Simon Cozens
ab075a9957
Annotate LookupFlag ttx dump
2020-03-10 21:42:28 +00:00
Cosimo Lupo
c42c4162c2
add otConverter for namedtuples and use it for Variable{Scalar,Position,Distance}
...
in COLRv1 all scalar values have associated varIdx to support variations. I want to load them as
immutable namedtuples, and also I want to dump them as simple XML tags with 'value' and 'varIdx'
attributes, instead of normal otTables (i.e. with nested Value and VarIdx sub-elements) as
that would make them too verbose in the XML dump.
So I made a custom _NamedTupleConverter, as a base class for VariableScalar, etc.; sub-classes
must provide a tupleClass and a list of converterClasses for each namedtuple field.
The ExtendMode enum has also a custom converter to dump it as string in the XML, and load it
as IntEnum.
fixup
2020-03-06 18:35:32 +00:00
Cosimo Lupo
d2026bd651
WIP: otData: define draft COLRv1 structures
...
https://docs.google.com/document/d/1EPndWsdMK_M135FOIxQZ--dHpH727rXEBvLZqgIzZvs/edit#
2020-02-11 16:33:38 +00:00
Cosimo Lupo
73b715732a
otData: define COLRv0 structures
2020-02-04 17:00:20 +00:00
Behdad Esfahbod
9df78f303b
[otData] Support BASE table version 1.1
2019-10-31 11:45:49 -07:00
Nikolaus Waxweiler
01328213c7
Remove __future__ imports
2019-08-09 12:20:13 +01:00
Sascha Brawer
4a1871ff62
[morx] Support AAT action type to insert glyphs
2018-09-24 18:14:01 +02:00
Paul Linnerud
df429df9ec
TSIC Support for Visual TrueType
...
TSIC is a source table for Visual TrueType to maintain sources for the cvar variation table.
2018-08-22 16:48:42 -07:00
Behdad Esfahbod
54fd71f73c
[varLib/subset] Fix subsetting of GPOS variation data
...
Was not picking up ValueRecord Device objects. Ouch!
2018-02-27 18:52:07 -08:00
Behdad Esfahbod
67814fd3b3
[subset] Prune GDEF VarStore
...
Mostly fixes https://github.com/fonttools/fonttools/issues/1179
2018-02-18 19:20:00 -08:00
Sascha Brawer
a7ddb0b609
[AAT] Decode morx
tables with ligature substitutions
...
Only handling those parts that are shared with other substitution types.
The actualy ligature actions are not implemented yet.
2017-10-25 15:35:56 +02:00
Cosimo Lupo
28bb992c1f
replace int(round(...)) with round(...)
...
We don't need to cast to int when using the round function from py23,
as this is a backport of python3's built-in round and thus it returns
an int when called with a single argument.
2017-10-22 12:03:52 +01:00
Martin Hosken
0aab423993
Tidy up PR
2017-09-19 15:45:44 +02:00
Martin Hosken
eb9eebf972
Use glyph names not glyph ids
2017-09-19 15:45:44 +02:00
Martin Hosken
860a8e0522
Handle all Graphite tables now
2017-09-19 15:45:44 +02:00
Sascha Brawer
db0d193db6
[AAT] Support cidg
table with CID-to-glyph mapping
2017-09-06 12:52:22 +02:00
Sascha Brawer
0f05f824d2
[AAT] Support gcid
table with glyph-to-CID mapping
2017-09-06 01:40:49 +02:00
Sascha Brawer
ee1662e57e
[AAT] Support morx
tables with contextual substitution
2017-09-05 23:01:21 +02:00
Sascha Brawer
31b02d0bed
[AAT] Support morx
tables with Rearrangement subtables
2017-09-04 21:26:53 +02:00
Sascha Brawer
92124ee5a6
[AAT] Implement anchor point table
...
The AAT `ankr` anchor point table is an auxiliary table for `kerx`,
used to store anchor overrides in case the glyph itself does not
supply the needed anchors as control points. Among the fonts that
come pre-installed with MacOS 10.12.6, `ankr` is used by a handful
of non-Latin fonts such as “Myanmar MN”, “Devanagari Sangam MN”,
and “Arial HB”.
https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6ankr.html
2017-08-31 11:45:18 +02:00
Sascha Brawer
90f257cc60
[AAT] Support mort
and morx
tables with non-contextual substitutions
...
Other metamorphosis types are not yet supported and will raise an error
upon decompilation. The TTX tool catches the error and continues to emit
a hexdump of the table contents, just as before this change.
2017-08-30 14:46:34 +02:00
Sascha Brawer
13fe9b5c34
[AAT] Make lcar
ligature carets table a format-switching table
...
For consistency with other AAT tables, and to support additional
formats in the (rather unlikely) case those would ever be defined.
2017-08-25 14:53:43 +02:00
Sascha Brawer
f5793401ce
[AAT] Implement bsln
baseline table
...
The AAT baseline table uses arrays whose length is constant instead of
getting encoded in the data. Extended otBase to support such arrays.
2017-08-25 03:55:06 -07:00
Sascha Brawer
a47f658855
[AAT] Support the opbd
table with optical bounds
...
Interestingly, this can handle the examples from the AAT specification
(which are part of the unit tests), and also most AAT fonts on my disk.
However, some other AAT fonts such as Apple Chancery cannot be decompiled.
The failure seems to be a general problem with how fonttools decompiles
AAT lookups of format 4, and unrelated to this present change.
2017-08-18 08:39:44 -07:00
Sascha Brawer
d05617b4bd
[AAT] Support prop
table with glyph properties
2017-08-17 11:09:53 -07:00
Sascha Brawer
77876e8df4
[AAT] Add table definitions for lcar
table
...
After this change, fonttools is able to dump the `lcar` table of
the AppleChancery font to XML. However, the resulting XML cannot
be compiled back to TrueType, yet. So, something is still broken
with the implementation of AAT lookups. Need to do more testing
before the support for table `lcar` can be added to fonttools.
2017-08-16 02:42:55 +02:00
Sascha Brawer
020f7391ef
[morx] Parametrize AATLookup value type in otData
2017-08-14 21:34:15 +02:00
Sascha Brawer
7f774ae84c
[morx] Change MorphType to uint8, to comply with the spec
2017-08-14 21:34:15 +02:00
Sascha Brawer
f56b71937d
Add missing parts from morx branch
...
After this change, the `morx` table in Zapfino.ttf can be ttx'ed again.
2017-08-14 21:34:15 +02:00
Rob McKaughan
b8e2d90cda
Add AxisValueFormat4 for STAT table v1.2 from OT v1.8.2.
2017-07-24 16:12:31 -07:00
Miguel Sousa
4a8c1511ec
[otData] Label AxisNameID as NameID
2017-07-14 00:08:52 -07:00
Behdad Esfahbod
0cc1721b8d
[MVAR] Update for OT 1.8.1 rename
2017-01-10 11:01:06 -08:00
Behdad Esfahbod
b4d53811e9
Implement MVAR table
2016-12-18 21:55:45 -06:00
Denis Moyogo Jacquerye
250017289b
Revert "[STAT] It was decided to NOT bump minor version..."
...
This reverts commit 06de8ce81824f737a1e35bfb00b1f68db767037e.
2016-12-12 16:42:55 +00:00
Behdad Esfahbod
06de8ce818
[STAT] It was decided to NOT bump minor version...
...
...since no one implements STAT so far. So, version stays at 1.0.
2016-12-07 18:11:50 -08:00