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
Cosimo Lupo
0b746bc38d
instancer: implement restricting axis ranges (L3)
...
Added method to limitTupleVariationAxisRanges which takes a map of
axis tags to (min, max) ranges and drops entire deltasets when outside
of the new limits, or scales the ones that are within range.
Modified _TupleVarStoreAdapter to account for the fact that, when limiting
axes, existing regions can be modifed rathern than simply dropped
(see rebuildRegions).
Implemented limiting axis ranges for fvar, FeatureVariations, and avar.
Note how we pass user-scale coordinates to instantiateAvar, because we need
both the default normalized coordinates and the ones mapped forward (by
the very same avar table that we are instancing).
STAT table support will follow in a separate commit.
2019-10-24 17:10:32 +01:00
Cosimo Lupo
550711e106
move MAX_F2DOT14 constant to fixedTools
2019-10-23 16:50:12 +01:00
Just van Rossum
d96c92f95e
Merge pull request #1747 from justvanrossum/rclt_issue1625
...
[designspaceLib] [varLib] Allow FeatureVariations to be processed *after* other features
2019-10-21 16:08:04 +02:00
Cosimo Lupo
021820f6da
Merge pull request #1751 from msoxzw/msoxzw-patch-ttCollection
...
Add "with statement context manager" in ttCollection
2019-10-21 10:17:48 +01:00
msoxzw
fcbbce5ca2
Add with statement context manager like ttFont
2019-10-21 07:03:45 +00:00
justvanrossum
76b8517102
ooops, forgot to add the expected results file
2019-10-20 09:25:50 +02:00
justvanrossum
e2bac99eb8
Test adding FeatureVariations with an existing 'rclt' feature
2019-10-20 09:19:40 +02:00
justvanrossum
7bfeb1ab97
assume ds is a DesignSpaceDocument instance and therefore is known to have the rulesProcessingLast attribute
2019-10-19 11:17:26 +02:00
justvanrossum
4322a3f95d
more testing of rules-processing-last
2019-10-18 13:36:02 +02:00
justvanrossum
f4925fff44
perform some testing with <rules processing=...> and doc.rulesProcessingLast
2019-10-18 13:33:29 +02:00
justvanrossum
f9b04572f6
fix error message, reformatted long line
2019-10-18 13:24:32 +02:00
justvanrossum
0ee3f01f0c
use designspace.rulesProcessingLast flag to determine whether we should use 'rvrn' or 'rclt'
2019-10-18 13:21:06 +02:00
justvanrossum
d42b7d74ca
Implement <rules> attribute 'processing' according to spec update #1750 , as well as the related doc.rulesProcessingLast flag
2019-10-18 13:20:28 +02:00
justvanrossum
db04262bed
support multiple <featureTag> features
2019-10-17 20:46:59 +02:00
justvanrossum
d2ea72cbec
addFeatureVariations(): allow the feature tag to be specified (default to 'rvrn'); allow said feature to already exist, in which case we append new lookup indices to the existing feature
2019-10-17 20:01:05 +02:00
Cosimo Lupo
28b685c9c0
bump unicodedata2 requirement >= 12.1.0
2019-10-17 12:15:31 +01:00
Nikolaus Waxweiler
f939d2dc31
Merge pull request #1743 from fonttools/remove-some-py2-vestiges
...
Remove some Python 2 vestiges, deprecate using non-builtin types in plistlib
2019-10-14 11:18:50 +01:00
Nikolaus Waxweiler
6b9eefcf48
Warn if use_builtin_types is False
2019-10-14 11:04:52 +01:00
Nikolaus Waxweiler
6da6a2c377
Fix typo
2019-10-12 13:49:36 +01:00
Nikolaus Waxweiler
94c3aff991
Remove redundant object subclassing
2019-10-12 13:44:03 +01:00
Nikolaus Waxweiler
b54e11c1a5
Remove conditional to use built-in types by default
2019-10-12 13:40:48 +01:00
Nikolaus Waxweiler
c67a2e5ff0
Remove more legacy imports
2019-10-12 13:26:59 +01:00
Nikolaus Waxweiler
2acb1de6c9
Remove unicode
import
2019-10-12 13:22:31 +01:00
Nikolaus Waxweiler
fb07ab1d8f
Remove PY2-era re.ASCII reference
2019-10-12 12:24:16 +01:00
Nikolaus Waxweiler
641058ead2
Remove PY2 conditional and unicode
import
2019-10-12 12:20:22 +01:00
Nikolaus Waxweiler
b0afdc273e
Remove singledispatch import conditional
2019-10-12 12:20:06 +01:00
Nikolaus Waxweiler
969df8303b
Remove some Python 2 era import gaming
2019-10-11 22:36:33 +01:00
Nikolaus Waxweiler
cea5abd676
Merge pull request #1742 from fonttools/name-handle-duplicate-name-records-different-string-types
...
[name] Handle duplicate name records with different `string` types
2019-10-11 18:53:45 +02:00
Nikolaus Waxweiler
e4f7495f32
[name] Be less cautious about getting data for NameRecord comparisons
2019-10-11 17:39:56 +01:00
Nikolaus Waxweiler
2e82438d93
[name] Handle duplicate name records with different string
types
2019-10-11 14:24:03 +01:00
Cosimo Lupo
5f2eaf12cf
Merge pull request #1740 from anthrotype/fixed-to-float-str
...
don't round in fixedToFloat, unless we're dumping floats to XML
2019-10-09 18:10:13 +01:00
Cosimo Lupo
7433ac786a
graphite: round 16.16F 'version' to shortest decimal float on decompile
...
we could alternatively decode these version fields as a long integer like we do elsewhere
for similar table versions, but I am not sure whether external code relies on them being
like they are now (i.e. compact decimal float).
https://github.com/fonttools/fonttools/issues/944
2019-10-08 13:40:07 +01:00
Cosimo Lupo
2eeba71d5f
fix cvar, gvar and instancer tests to compare floats as almost-equality
2019-10-08 13:40:07 +01:00
Cosimo Lupo
a7e368d00f
otConverters: use floatToFixedToStr/strToFixedToFloat in Fixed/F2Dot14 toXML/fromXML
2019-10-08 13:40:06 +01:00
Cosimo Lupo
eb5a2ceb8d
_t_r_a_k: use floatToFixedToStr and strToFixedToFloat in TrackTableEntry toXML/fromXML
2019-10-08 13:40:06 +01:00
Cosimo Lupo
c60512de0e
_g_l_y_f: use floatToFixedToStr and strToFixedToFloat in GlyphComponent toXML/fromXML
2019-10-08 13:40:06 +01:00
Cosimo Lupo
8791caf3b8
_a_v_a_r: use floatToFixedToStr and strToFixedToFloat in toXML/fromXML methods
2019-10-08 13:40:05 +01:00
Cosimo Lupo
d66c92fbe0
_f_v_a_r: use floatToFixedToStr and strToFixedToFloat in Axis and NamedInstance
2019-10-08 13:40:05 +01:00
Cosimo Lupo
b50c10af7a
TupleVariation_test: test toXML and fromXML with float axis supports
2019-10-08 13:40:05 +01:00
Cosimo Lupo
79d654eaf2
TupleVariation: use floatToFixedToStr and strToFixedToFloat in toXML/fromXML methods
2019-10-08 13:40:04 +01:00
Cosimo Lupo
8500dfca71
psCharStrings_test: test load/dump fixed point numbers
2019-10-08 13:40:04 +01:00
Cosimo Lupo
86793f2617
psCharStrings: use floatToFixedToStr and strToFixedToFloat in T2CharString.toXML and fromXML
...
Also, toXML signature must contain ttFont=None keyword argument, like
the rest of toXML methods elsewhere.
2019-10-08 13:40:03 +01:00
Cosimo Lupo
3521094ca9
_h_e_a_d: use floatToFixedToStr and strToFixedToFloat for fontRevision
2019-10-08 13:40:03 +01:00
Cosimo Lupo
6fd31d47ec
fixedTools: use simple divison in fixedToFloat; add floatToFixedToStr, strToFixedToFloat, etc.
...
Fixes #737
2019-10-08 13:40:03 +01:00
Khaled Hosny
be152b4725
Merge pull request #1733 from khaledhosny/fealib-ligature-caret
...
[feaLib] Fix handing of duplicate LigatureCaret
2019-10-01 11:39:39 +02:00
Khaled Hosny
b99ae0d469
[feaLib] Fix handing of duplicate LigatureCaret
...
The spec has been updated for a while to allow only one rule per glyph,
and makeotf uses the first and ignores the rest.
See https://github.com/adobe-type-tools/afdko/issues/95 , and
https://github.com/adobe-type-tools/afdko/issues/155
2019-09-26 16:44:46 +02:00