Jens Kutilek
d1cf59d2c9
Use a namedtuple for maxp values
2017-05-04 12:28:02 +02:00
Behdad Esfahbod
33d57dc2c3
[glyf] Add getter to fetch raw array
2017-04-05 15:43:14 +02:00
Behdad Esfahbod
fdbf066a8c
[glyf] Add __bool__ / __nonzero__ to GlyphCoordintes
...
I'm really unhappy that doctests do NOT work anymore :(.
2017-04-05 15:43:14 +02:00
Cosimo Lupo
3c46a4280f
[_g_l_y_f] use short empty element notation for glyf instructions
2017-01-24 18:33:57 +00:00
Cosimo Lupo
0918f7cf3e
[_g_l_y_f] factor out code for writing instructions in toXML
2017-01-24 17:33:53 +00:00
Cosimo Lupo
499bc960f9
[_g_l_y_f/ttProgram] Move writer.newline() to Program.toXML()
2017-01-24 14:35:46 +00:00
Jens Kutilek
07e4f242b8
Fix linebreaks/indentation in instruction element
2017-01-24 13:05:58 +01:00
Khaled Hosny
b5afd862e1
[glyf] Round component offset before compiling
...
We can get a float here.
2016-04-30 00:16:15 +02:00
Behdad Esfahbod
e391cdb787
[glyf] GlyphCoordinates: Implement __del__()
2016-04-27 01:14:08 -07:00
Behdad Esfahbod
e36b7069d9
[glyf] GlyphCoordinates: Upgrade to float in math ops if needed
2016-04-27 01:11:40 -07:00
Behdad Esfahbod
0ee799fb03
[glyf] Add math operators to GlyphCoordinates
2016-04-13 22:54:39 -07:00
Cosimo Lupo
d82a31dd57
return NotImplemented from __ne__ if __eq__ returns NotImplemented
...
otherwise `not NotImplemented` (always False) is returned from __ne__ when `type(self) != type(other)`, leading to illogic results like:
>>> from fontTools.ttLib.tables.DefaultTable import DefaultTable
>>> t = DefaultTable('test')
>>> t == 0
False
>>> t != 0
False
The latter of course should return True.
2016-03-11 15:10:50 +00:00
Behdad Esfahbod
7aed5c3ca9
GlyphCoordinates: add test for non-integer transform()
2016-02-24 13:01:09 +09:00
Behdad Esfahbod
87b1c0f403
GlyphCoordinates: Fix translating by non-integer
2016-02-24 12:58:32 +09:00
Behdad Esfahbod
d0552c994c
GlyphCoordinates: add failing test for translating non-integer
2016-02-24 12:57:18 +09:00
Behdad Esfahbod
26621d548f
GlyphCoordinates: return early from _checkFloat(), if already float
2016-02-24 12:52:38 +09:00
Cosimo Lupo
dff078ed51
[_g_l_y_f] replace print and warnings with logger
2016-01-27 19:02:48 +00:00
justvanrossum
56f863564e
added GlyphCoordinatest().toInt() method; made compileCoordinates() actually work with float coords.
2016-01-20 19:23:16 +01:00
Cosimo Lupo
738866492d
_g_l_y_f: expand glyphs inside compile
if recalcBBoxes==True; delete empty self.data lingering around
...
Fixes https://github.com/behdad/fonttools/issues/410 .
See also:
ecbe8f2c37 (commitcomment-14464893)
2015-12-08 09:35:00 +00:00
Behdad Esfahbod
505c1a5ea7
Fixup previous change
...
ecbe8f2c37 (commitcomment-14464749)
2015-11-18 00:08:49 -08:00
Behdad Esfahbod
ecbe8f2c37
Fix decompile of Neirizi
2015-11-17 23:24:03 -08:00
Cosimo Lupo
563f32f877
[glyf] add 'padding' attribute to glyf table; assert is in (0, 1, 2, 4)
...
The default (1) keeps the current behaviour (i.e. only pad when we can
use short offsets). Optional values are 0 (no padding), 2 and 4.
2015-09-09 11:15:26 +01:00
Behdad Esfahbod
9aed8e1e9d
Merge pull request #270 from anthrotype/woff2_14
...
implement WOFF2 encoder/decoder as standalone module
2015-08-19 15:33:44 +01:00
Miguel Sousa
a7aef47695
fix "indentation contains mixed spaces and tabs" errors reported by Landscape
2015-08-09 00:33:50 -07:00
Cosimo Lupo
77ffbab995
[glyf] pad glyph data upon compile if self has attribute 'padding'
2015-08-07 18:23:41 +01:00
Cosimo Lupo
4bbe6ef57f
[glyf] fixed 'noname'
2015-05-11 17:37:48 +01:00
Behdad Esfahbod
b30e12ae00
More whitespace
2015-04-26 02:01:01 -04:00
Behdad Esfahbod
bd67253118
Some more whitespace fixes from pep8 tool
2015-04-26 01:59:01 -04:00
Behdad Esfahbod
4ba27843a9
Fix drawing of glyf's after numpy removal!
...
Should really start adding tests for these...
Fixes https://github.com/behdad/fonttools/issues/238
2015-04-16 03:26:06 -07:00
Behdad Esfahbod
7c9ab300c2
Add standard imports to all python sources
...
Previously, the trivial files didn't have them.
2015-04-14 17:26:59 -07:00
Behdad Esfahbod
0bf67b50bd
[glyf] Implement optimal glyph outline packing; disabled by default
...
Dynamic-Programming-based algorithm. Previously we had a greedy
algorithm only.
Unfortunately the savings are truly negligible. In the order of ~20
bytes for each of the Roboto faces, less so for Noto fonts. Even on
a 20MB font, it produced less than 100 bytes saving compared to our
greedy packing. Either I made a huge mistake, or this is so not worth
it. Anyway, the code is there, but disabled.
2015-03-30 16:47:49 -07:00
Behdad Esfahbod
cd1bc34f89
Simplify glyf packing a bit more
2015-03-30 16:47:48 -07:00
Behdad Esfahbod
c72058623b
Minor
2015-03-30 16:47:48 -07:00
Behdad Esfahbod
630284e31a
Minor
2015-03-30 16:47:48 -07:00
Behdad Esfahbod
0679a7691d
Move glyf coordinate delta packing into new function
2015-03-30 16:47:47 -07:00
Behdad Esfahbod
a40b20d0e0
Minor shuffling of glyf compression code
2015-03-30 16:47:47 -07:00
Behdad Esfahbod
c511745b2e
Work around a Jython bug:
...
>>> import array; array.array("f", array.array("b", [1,2,3]))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only extend with array of same kind
>>> import array; array.array("f", list(array.array("b", [1,2,3])))
array('f', [1.0, 2.0, 3.0])
2015-03-17 15:32:57 -07:00
Behdad Esfahbod
8ef5adc4af
Move draw() implementation to a better place
2015-01-08 12:28:42 -08:00
Behdad Esfahbod
3715f2d354
Unbreak Python3
...
Fixes https://github.com/behdad/fonttools/issues/197
2014-12-01 13:33:19 -08:00
Behdad Esfahbod
b342a27430
Add glyf.Glyph.trim() that removes padding and if asked hinting
2014-08-15 14:34:03 -04:00
Behdad Esfahbod
5ba7d98a41
[glyf] Only pad glyphs that are odd-lengthed
...
Ouch! Thinko.
2014-07-23 16:36:31 -04:00
Behdad Esfahbod
5ed7d154a9
Turn assert into warning
2014-07-23 16:28:34 -04:00
Behdad Esfahbod
3a10a6546c
[glyf] Don't pad when removing hinting instructions
...
Finishes recent changes.
2014-07-22 21:48:19 -04:00
Behdad Esfahbod
9ab98b2d65
Adjust previous commit
2014-07-22 17:39:17 -04:00
Behdad Esfahbod
eef4daeeaa
Add padding to glyphs only if it makes it possible to use short loca
...
Otherwise don't add padding. This is against the spec, but "should"
work everywhere. The spec only says offsets "should" be padded:
"""Note that the local offsets should be long-aligned, i.e., multiples
of 4. Offsets which are not long-aligned may seriously degrade
performance of some processors."""
We don't add any padded that we absolutely don't have to. Should save
an average of one byte per glyph on large fonts.
2014-07-22 16:00:24 -04:00
Behdad Esfahbod
30ff4ab869
Minor debug output improvement
2014-07-22 15:37:17 -04:00
Behdad Esfahbod
e6adebdc4a
Make glyf-table glyph loading lazy by default
...
When I added the font.lazy setting, I made glyf table non-lazy
by default. This is helpful to users who typically access glyphs
like:
glyf_table.glyphs[glyfname]
instead of the correct way:
glyf_table[glyfname]
and also forget to call expand() on the glyph. However, this
significantly slows down most scripts that load the font without
lazy=True... As such, add a third mode to laziness. By default
lazy=None and does NOT expand glyphs. If lazy=False is passed
in, all glyphs are loaded.
I hope this is an acceptable middle ground and not too confusing.
2014-07-14 20:02:37 -04:00
Behdad Esfahbod
671bca785d
[glyf] Align glyphs at word boundaries, not long
...
Saves two bytes per glyph on average. Or as Roozbeh reports,
70kb in DroidSansFallbackFull.ttf.
2014-07-14 19:53:42 -04:00
Behdad Esfahbod
83a89c123f
Fix isComposite with empty glyphs
...
Was broken in 626107c8.
2014-06-25 19:02:04 -06:00
Behdad Esfahbod
487b15fd94
Add a few __delitem__ implementations
2014-05-14 13:51:10 -06:00