7278 Commits

Author SHA1 Message Date
ln_north
9a49b01ec1 fix requirements in svg2glif.py
- Remove unused `ufoLib` package
- FontTools => fontTools
2019-12-10 09:39:53 +09:00
Just van Rossum
e2c60e3dcb
[ttLib.glyf] Fix flag bug in glyph.drawPoints() (#1774)
This was the same problem as glyph.draw() had, as reported in #1771.
2019-12-08 21:55:30 +01:00
Cosimo Lupo
a4b0992472
Bump version: 4.2.1 → 4.2.2.dev0 2019-12-06 09:42:19 +00:00
Cosimo Lupo
12a1da6de3
Release 4.2.1 2019-12-06 09:42:18 +00:00
Cosimo Lupo
15732894d8
Update changelog 2019-12-06 09:42:07 +00:00
Just van Rossum
46a06cabf2
[ttLib.glyf] Make sure to use the flagOnCurve mask in glyph.draw() (#1772)
* When drawing glyf outlines to a pen, make sure to use the flagOnCurve mask, so we don't trip over the overlap flag, that is set when instantiating variable fonts to indicate that overlaps are ok.

Fixes #1771.
2019-12-06 10:27:31 +01:00
Cosimo Lupo
cfc5b44c65
change all scripts' shebangs to use python3 2019-12-05 15:28:19 +00:00
Behdad Esfahbod
35f2a657ea Update ./fonttools script to use Python 3 2019-12-05 15:17:53 +00:00
Cosimo Lupo
ab2f8d9338
NEWS.rst: fix reStructuredText unordered list formatting 2019-11-28 17:25:40 +00:00
Cosimo Lupo
3af8bf18d2
NEWS.rst: remove stray line 2019-11-28 17:18:28 +00:00
Cosimo Lupo
a91f6047a2
Bump version: 4.2.0 → 4.2.1.dev0 2019-11-28 17:15:49 +00:00
Cosimo Lupo
8e30545a29
Release 4.2.0 2019-11-28 17:15:49 +00:00
Cosimo Lupo
2d13232e7a
Update NEWS.rst 2019-11-28 17:14:43 +00:00
Cosimo Lupo
43599ee3dd
Merge pull request #1766 from anthrotype/more-point-pens
[pointPens] Add {Filter,Recording,Transform,Rounding}PointPen
2019-11-28 16:56:38 +00:00
Cosimo Lupo
d9b6067447
roundingPen: Add RoundingPointPen, like RoundingPen but for point pens 2019-11-28 16:32:40 +00:00
Cosimo Lupo
ae5212f76b
add tests for RecordingPointPen 2019-11-28 16:32:40 +00:00
Cosimo Lupo
b885a852ed
recordingPen: add RecordingPointPen, like RecordingPen but for point pens 2019-11-28 16:29:36 +00:00
Cosimo Lupo
0fef59fd9e
transformPen: add TransformPointPen, like TransformPen but for point pens 2019-11-28 16:29:36 +00:00
Cosimo Lupo
646e26603d
filterPen: add FilterPointPen, like FilterPen but for point pens
the base class simply passes through contours/components unchanged
2019-11-28 16:29:35 +00:00
Cosimo Lupo
d4078cc44a
Merge pull request #1765 from anthrotype/rounding-pen
add RoundingPen, a filter pen to round coordinates and component offsets
2019-11-27 12:20:57 +00:00
Cosimo Lupo
3d4fb2b371
add RoundingPen, a filter pen to round coordinates and comp offsets 2019-11-27 11:01:09 +00:00
Cosimo Lupo
f6e69af7ba
Merge pull request #1763 from anthrotype/ttpen-float-coords
ttGlyphPen must round float coordinates and offsets
2019-11-26 16:31:25 +00:00
Cosimo Lupo
97fce155ad
ttGlyphPen: always round float coordinates and offsets to integers
Fixes googlefonts/fontmake#593
2019-11-26 16:16:48 +00:00
Nikolaus Waxweiler
a1f4d609e6 [varLib] fix logging typo about setting OS/2.usWeightClass 2019-11-26 16:03:26 +00:00
Cosimo Lupo
7fe59e4b94
ttGlyphPen_test: test computing bounds with float coordinates and offsets
https://github.com/googlefonts/fontmake/issues/593

This test currently fails. The compositeGlyph.xMax is set to 281, but it should be 282.
2019-11-26 16:03:18 +00:00
Jens Kutilek
6c3edaded2
ufoLib groupnames conversion 2 → 3 (#1762)
* If a group name is the same as a glyph name, it cannot be a kerning group name
* Add test
2019-11-22 09:51:35 +01:00
Cosimo Lupo
9d3b14dd5f
Bump version: 4.1.0 → 4.1.1.dev0 2019-11-18 16:29:17 +00:00
Cosimo Lupo
4076060344
Release 4.1.0 2019-11-18 16:29:16 +00:00
Cosimo Lupo
0597cea7df
Update NEWS.rst [skip ci] 2019-11-18 16:24:27 +00:00
Cosimo Lupo
6725b34566
Merge pull request #1753 from anthrotype/l3-instancer
[varLib.instancer] implement restricting axis ranges (aka L3)
2019-11-18 10:55:56 +00:00
Cosimo Lupo
dbe20b7217
minor: typos and variable names 2019-11-18 10:51:30 +00:00
Cosimo Lupo
0b9404d7a4
instancer: rename parameters to more generic 'axisLimits'
I use the term 'location' for map of {axis_tag: float} coordinates, 'axisRanges'
for a map of {axis_tag: Tuple[float, float]} ranges, and 'axisLimits' to include
either single-float coordinates or range tuples.
2019-11-15 19:36:57 +00:00
Cosimo Lupo
12e1a6de37
instancer: catch early if input range doesn't include current default 2019-11-15 19:02:12 +00:00
Cosimo Lupo
6142825d7b
instancer: document case when peak is < 1.0 but outer limit exceeds 2.0 2019-11-15 18:35:37 +00:00
Cosimo Lupo
7d136da836
remove stale comment
a featureVars' range(0,0) is perfectly valid.
2019-11-15 18:01:02 +00:00
Cosimo Lupo
599d24a9e1
instancer: add comments to instantiateAvar 2019-11-15 17:43:22 +00:00
Cosimo Lupo
7c695d411f
Merge remote-tracking branch 'origin/master' into l3-instancer 2019-11-15 17:05:47 +00:00
Just van Rossum
4658525153
Merge pull request #1759 from justvanrossum/improve-error-issue1758
[varLib] improve error when glyph orders don't match; fixes #1758
2019-11-12 10:09:50 +01:00
justvanrossum
4de5fb800c improve error when glyph orders don't match; fixes #1758 2019-11-12 10:02:27 +01:00
Just van Rossum
b8fafdd259
[WIP] [designspaceLib] designspace docs edits (#1750)
Various changes in the designspaceLib readme.rst
- added docs for DesignSpaceDocument object, methods and attributes
- removed comments on validation, localisation and generating UFO instances.
- added note that axis minimum, default and maximum are in userspace coordinates.
- added clarification to map input (userpace!) / output (designspace!) values.
- added note that sourceDescriptor location is in designspace coordinates.
- moved comment on rule subs to rule descriptor object.
- added proposed "processing" flag to rules element
- move note on sub element
- implementation differences
- varlib vs. mutatormath
- older versions
- rules and generating static ufo instances
- Updated the description of the `copyInfo` flag of the sourceDescriptor.
- Change the example import.
- Remove additional mention of copyInfo.
2019-11-07 19:30:51 +01:00
Behdad Esfahbod
9df78f303b [otData] Support BASE table version 1.1 2019-10-31 11:45:49 -07:00
Just van Rossum
07140c12bd
[pens] Improve error message if pen.moveTo() is omitted. (#1757)
Improve error message if pen.moveTo() is omitted. See also robotools/fontParts#470
2019-10-30 14:45:55 +01:00
Cosimo Lupo
5790f7f9af
Merge pull request #1752 from anthrotype/region-axis-count
enforce VarStore RegionAxisCount == fvar.AxisCount
2019-10-29 13:02:43 +00:00
Cosimo Lupo
ebadcd96e6
set pre-initialized CountReference in VarRegionList.preWrite with fvar.axisCount
so we can reuse CountReference class, as suggested in https://github.com/fonttools/fonttools/pull/1752#issuecomment-547113944

The patch is no shorter though.
2019-10-29 12:52:42 +00:00
Cosimo Lupo
8bf82539bb
instancer: update module-level docstring for L3 instancing 2019-10-28 17:39:21 +00:00
Cosimo Lupo
9a707a2c1b
instancer_test: test empty HVAR is not dropped 2019-10-24 17:37:49 +01:00
Cosimo Lupo
f861c68873
instancer: keep emptied HVAR table
Even if HVAR no longer contains any variations, it's better to keep it because
otherwise one would have to check the glyphs' phantom points to confirm that
the advance widths (or heights for VVAR) don't vary
2019-10-24 17:37:49 +01:00
Cosimo Lupo
10d544d6a4
instancer_test: update tests for instantiateSTAT new behavior
And add tests for limiting STAT's axis ranges.
2019-10-24 17:37:49 +01:00
Cosimo Lupo
3c6ddb0ef8
instancer: never drop STAT DesignAxes; only prune out-of-range AxisValues
The current method for L1 and L2 partial instacing of STAT table --
i.e. drop all pinned axes are respective axis values -- was incorrect.
STAT design axis are a superset of the fvar axes, they describe the relations
between members of a font family in which some aspects may be implemented as
variation axes within a single VF, others as multiple discrete fonts.

When we remove an axis from fvar, we still want to keep the STAT's DesignAxis,
as well as the single AxisValue table along that design axis which describes
the position of the new instance within the family's stylistic attributes.

This means, intantiateAvar will never drop any DesignAxis, but will only drops
AxisValue tables when: 1) we're pinning an axis and the desired instance
coordinate doesn't exactly equal any of the existing AxisValue records;
2) we're restricting an axis range, and the (nominal) AxisValue falls
outside of the desired range.

We never add new AxisValue records, as that's a design decision that
is outside of the scope of the partial instancer.
2019-10-24 17:37:48 +01:00
Cosimo Lupo
b8500ac97c
instancer_test: add tests for restricting axis ranges (L3) 2019-10-24 17:10:32 +01:00