Behdad Esfahbod
8be2f49b84
[GlyphCoordinates] Speed up __imul__()
...
Like the recent change to __isub__/__iadd__().
This, as well as the other, change do not handle overflows.
Going to fix that now.
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
77abdad0f7
[GlyphCoordinates] Move identity check to scale() / translate()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
45e94ff2bd
[GlyphCoordinates] Speed up __isub__() and __iadd__()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
3892ece50c
[GlyphCoordinates] Remove Jython workaround
2021-04-08 09:41:45 -06:00
Just van Rossum
5fc65d7168
Misc py23 cleanups ( #2243 )
...
* Replaced all from ...py23 import * with explicit name imports, or removed completely when possible.
* Replaced tounicode() with tostr()
* Changed all BytesIO ans StringIO imports to from io import ..., replaced all UnicodeIO with StringIO.
* Replaced all unichr() with chr()
* Misc minor tweaks and fixes
2021-03-29 11:45:58 +02:00
Chris Simpkins
7abf2e4c75
transition basestring
to str
...
https://github.com/fonttools/fonttools/issues/2232
2021-03-27 10:23:29 -04:00
Behdad Esfahbod
6243a24a09
[otBase] Delete .Format if was introduced by .preWrite()
...
https://github.com/fonttools/fonttools/pull/2238#issuecomment-805192631
2021-03-23 18:13:07 -07:00
Behdad Esfahbod
03d0a62078
Remove .Format from MultipleSubst as well
2021-03-23 18:01:06 -07:00
Behdad Esfahbod
8f79235d00
[Tests] Remove hack after Coverage .Format removal
2021-03-23 11:44:13 -07:00
Behdad Esfahbod
10fe1c2636
Don't write Format for Coverage, ClassDef, Single/Alternate/LigatureSubst
...
The format values for those are automatically handled in
postRead/preWrite to choose optimal format. As such, don't write them
in XML. Reduces noise.
https://github.com/fonttools/fonttools/pull/2236#issuecomment-804523961
2021-03-23 11:01:53 -07:00
Behdad Esfahbod
606b072f40
[glyf] Add round=otRound parameter to GlyphCoordinates.toInt() & __round__()
2021-03-04 09:43:08 -07:00
Behdad Esfahbod
77acdbced3
[glyf] Remove stale comment about Python 2
2021-03-04 09:20:43 -07:00
Behdad Esfahbod
abc1ba07a4
[misc.roundTools] New module; move otRound() here
...
Code relying on old place (fixedTools.otRound) still works.
2021-03-04 09:20:43 -07:00
Zachary Scheuren
0434b1a917
Add feaLib support for STAT table
2021-02-25 17:16:01 +00:00
Cosimo Lupo
4dcc7f83d2
otTables: add Paint.traverse method
...
paint graph traversal mostly adapted from rsheeter's https://github.com/googlefonts/nanoemoji/pull/233
2021-02-15 11:12:16 +00:00
Cosimo Lupo
4036512a27
C_O_L_R_: factor out method to convert v0 layer records to dict of list
...
we'll need that when we subset the COLRv0 portion of a COLRv1 table
2021-02-15 11:12:16 +00:00
rsheeter
404072ee99
Fix descriptions in Lib/fontTools/ttLib/tables/otData.py
...
Co-authored-by: Cosimo Lupo <cosimo@anthrotype.com>
2021-02-15 10:42:59 +00:00
rsheeter
2df3fed98a
Prevent otConverters from ignoring the 'template' type when field name is also a type
2021-02-15 10:42:58 +00:00
rsheeter
f1ecccbbb8
Begin updating for static vs variable versions of COLR v1 Paint
2021-02-15 10:42:55 +00:00
rsheeter
5316ae4b8c
Add test to expose missed otRound + fix
2021-02-12 20:23:06 -08:00
rsheeter
0353c809cd
Update COLR build fns per review feedback
2021-02-12 10:02:08 -08:00
rsheeter
cf4a4087be
Generic build fns
2021-02-10 09:40:37 -08:00
Cosimo Lupo
df672a7ae4
move PaintFormat enum outside of Paint class nested scope
...
When a TTFont is loaded with lazy=True, the otTables are only loaded upon BaseTable.__getattr__
when the requested attribute is not found in the instance __dict__.
Since the Paint.Format enum was defined at class level, every Paint instance, even when loaded
lazily, will have a 'Format' attribute and the magic decompile-on-missing-attribute will not
trigger, since the class attribute will be returned when the instance is missing one.
For this reason, and to not add further special cases, it's better to simply move this Paint.Format
enum class outside to the module level scope, and rename it PaintFormat.
2021-02-05 12:11:43 +00:00
Cosimo Lupo
a3d13abcff
otData: fix typo, add comments
2021-02-04 11:32:22 +00:00
Cosimo Lupo
93c23eaaf7
COLRv1: define new PaintSweepGradient, amend tests with new format numbers
2021-02-03 18:21:09 +00:00
Cosimo Lupo
538528d5a1
COLRv1: Implement PaintTranslate
...
https://github.com/googlefonts/colr-gradients-spec/pull/163
2020-12-15 16:58:31 +00:00
rsheeter
d888526659
Hook up paint skew and rotate
2020-12-02 21:21:19 -08:00
rsheeter
4171e28f32
Update ttLib/tables to latest spec
2020-11-10 21:51:04 -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
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
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
fc625963fa
otTables: dump the format name of Paint tables as XML comment
2020-10-20 19:03:17 +01: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
c7e3a692e1
otBase: support FormatSwitchingBaseTable with uint8 Format type
2020-10-08 12:39:56 +01:00
Cosimo Lupo
d60d84d3fc
otBase/otConverters: add support for 3-byte offsets
2020-10-08 12:39:54 +01:00
Simon Cozens
7135255d4a
Style nits
2020-09-11 09:35:45 +01:00
Simon Cozens
95a941ec15
Re-case debug info module
2020-09-11 09:31:07 +01:00
Simon Cozens
af4f1f6d6e
Prefer module constant to hard-coded string for Debg table key
2020-09-10 16:00:06 +01:00
Simon Cozens
02c305c2fc
Serialize JSON object before writing to XML
2020-09-10 13:22:33 +01:00
Simon Cozens
4e70b30eb0
Ensure LookupCount is processed
2020-09-10 08:29:15 +01:00
Simon Cozens
98803b7bf8
Reformat, tidy from review comments
2020-09-09 19:56:55 +01:00
Simon Cozens
41c1dcce1c
Tidy up as per review
2020-09-09 19:56:44 +01:00
Simon Cozens
4cddc38263
Use a named tuple, tidy ttx dump code
2020-09-09 19:56:05 +01:00
Simon Cozens
b548c5f2e1
Namespace debug output.
2020-08-25 20:22:54 +01:00
Simon Cozens
50e1105604
Parse Debg info in LookupList
2020-08-25 20:19:31 +01:00
Simon Cozens
aebb2e511c
The long-threatened Debg table!
2020-08-25 14:06:14 +01:00