1229 Commits

Author SHA1 Message Date
Takaaki Fuji
072b4c8db0 Fit to contents when image size omitted
Eliminates the assumption of any specific metrics from the pen. It still
gives some image without giving any parameters, thus it should be a good
starting point for new users.
2022-01-11 23:02:37 +09:00
Takaaki Fuji
6f7ef4a838 Prefer single transform matrix over offset/scale 2022-01-11 23:02:37 +09:00
Cosimo Lupo
09e2d1d548 unicodedata: update the script direction list to Unicode 14.0
same as https://github.com/harfbuzz/harfbuzz/blob/3.2.0/src/hb-common.cc#L514-L613
2022-01-11 13:19:01 +00:00
Takaaki Fuji
42bc1257b4 Add reference for PSNR 2022-01-11 02:26:05 +09:00
Takaaki Fuji
d399e93d95 Rename even_odd to evenOdd
PointInsidePen already uses camelCase convention for the argument.
2022-01-11 01:42:05 +09:00
Takaaki Fuji
2c0ab2a05a Relax assertions for rendering tests
There are possibilities that the rendering results may change among
FreeType versions. I've already used the PSNR comparison for cubic
vs quadratic testing, so I applied the same technique and threshold to
all rendering tests to relax assertions. Also handles the case that
MSE becomes zero. Optional dependencies are not needed for the tests.
2022-01-11 01:42:05 +09:00
Takaaki Fuji
0e880260ae Remove unnecessary import in test 2022-01-11 01:41:43 +09:00
Takaaki Fuji
d0dbbbd3c8 Rename to freetypePen/FreeTypePen 2022-01-10 23:51:28 +09:00
Takaaki Fuji
f7c29e89be Change arguments for positioning and dimension
After experimenting with uharfbuzz for a while, I found out it was hard
to handle top-to-bottom texts, so I gave up an idea to put an ascender
or a descender value in the arguments. Instead, I simply expose 'offset',
'width' and 'height', which is way more straightforward than the
previous design.

In addition, 'contain' option is added to easily compensate and render
glyphs such as combining accents or excessively tall letters.
2022-01-07 22:29:01 +09:00
Takaaki Fuji
10a3ca8ea5 Use freetype-py instead
I didn't expect that the PyPI package contains the pre-built binary
for each platform. Skip the test when freetype-py is not avaiable.
2022-01-06 19:07:26 +09:00
Takaaki Fuji
46c580f00b Fix import in unit test 2022-01-06 18:18:42 +09:00
Takaaki Fuji
e2fad4db11 Add FreeType-based Pen for rasterisation 2022-01-06 09:00:53 +09:00
Behdad Esfahbod
672b4032ad [merger] Fix duplicate-glyph-resolution GSUB-lookup generation code
Part of fixing https://github.com/fonttools/fonttools/issues/2475

Old code was mistakenly only adding the synthetic-generated feature
to the first language-system. In the case of merging Noto Grantha
and Noto Tamil fonts, Noto Tamil had two script systems: 'taml' and
'tml2', and we were adding the synthetic 'locl' feature only to the
DefaultLangSys of the 'taml' script, not the 'tml2' script. That was
the main bug.

A second issue was that the lookup was being added twice to the same
(synthetic) feature. Check before adding lookup, to avoid that.
2021-12-16 08:03:38 -07:00
Cosimo Lupo
d4b7ff66c9 merge_test: fix expected .ttx file with correct MarkFilteringSet values 2021-12-15 09:21:16 -07:00
Cosimo Lupo
de3830ba2b clarify comment a bit as per review 2021-12-03 11:16:59 +00:00
Cosimo Lupo
d89f90f46c subset_test: test COLR subset excludes glyphs resulting from glyf closure 2021-12-02 18:18:09 +00:00
Cosimo Lupo
32874cb372 subset/COLR: add reproducer for issue #2461
this currently fails with struct.error. Fix will ensue shortly
2021-12-02 18:01:24 +00:00
Khaled Hosny
0a7164a452
Merge pull request #2447 from fonttools/merge-cff-rebased
Merge CFF rebased
2021-11-19 14:20:26 +02:00
Khaled Hosny
1fa579f6b8 [merge] Add CFF merging integration test 2021-11-18 22:14:41 +02:00
Khaled Hosny
c20a63a166 [merge] Move test to its own dir 2021-11-18 21:27:01 +02:00
Khaled Hosny
18236ca91d
Merge pull request #2440 from dscorbett/dedupe-buildCoverage
[otlLib] Remove duplicates when building coverage
2021-11-18 15:36:37 +02:00
Simon Cozens
af9dfc94e7
Forbid empty classes (take 2) (#2446) 2021-11-18 11:31:49 +00:00
Cosimo Lupo
247fa84b98 only rename glyph element ids when clash actually occurs 2021-11-16 14:28:14 +00:00
Cosimo Lupo
dbcb9d6cee parametrize test_subset_single_glyph_per_svg, as per review 2021-11-16 14:06:24 +00:00
Cosimo Lupo
07455790b1 simplify ranges() generator 2021-11-16 14:06:24 +00:00
Cosimo Lupo
863c9de57c subset/svg_test: test more complex document with cross-references 2021-11-15 17:08:55 +00:00
Cosimo Lupo
a79106d09a add simple subset/svg_test.py 2021-11-15 17:08:55 +00:00
Cosimo Lupo
8d6a7617a2 minor: fix 4-space indentation from PR 2441 2021-11-08 12:27:26 +00:00
Rod S
7dd3488732 Traverse when there is no layer list 2021-11-06 14:26:27 -07:00
David Corbett
cfa69f245f [otlLib] Remove duplicates when building coverage 2021-11-06 13:32:43 -04:00
Rod S
6144202cd9 Don't crash if there is no layer list 2021-11-02 15:59:30 -07:00
Yao Wei (魏銘廷)
390640a357
update to unicode 14.0 2021-10-31 23:24:18 +08:00
Simon Cozens
563730f8ce
Support variable feature syntax (#2432) 2021-10-28 11:58:54 +01:00
Cosimo Lupo
e3bc036c7e Add tests for SVG table 2021-10-13 14:53:00 +02:00
Cosimo Lupo
6df6db840e test subsetter doesn't fail when (optional) ClipList is empty
Kudos to Qunxin for catching the bug
2021-10-11 16:43:18 +02:00
Nikolaus Waxweiler
a7e4d86540 Use a set for file names for clash checking 2021-10-07 12:03:47 +01:00
Cosimo Lupo
64299aa4b1 drop Python 3.6, require >= 3.7
3.10 is out next week, while 3.6 reaches end of life by the end of this year.
It's time to require 3.7 or greater, so we can finally use built-in dataclasses and more.

Fixes https://github.com/fonttools/fonttools/issues/2350
2021-09-27 13:21:08 +02:00
Simon Cozens
d9ce420967 Test for typo case 2021-09-23 08:15:57 +01:00
Simon Cozens
1cc8bf0827 Fix two problems when handling orthogonal lines 2021-09-22 16:28:10 +01:00
Behdad Esfahbod
d867397532 Remove residual allowVID stuff
Part of https://github.com/fonttools/fonttools/pull/2398
2021-08-25 15:55:17 -06:00
Khaled Hosny
89fe3bd3c5 [Tests] Add test for virtual GIDs 2021-08-21 00:16:45 +02:00
Khaled Hosny
232b2ccbc4 Move the rest of py23 module to textTools
Change all imports to use textTools module, except the test_py23.py test
which is kept until we decide to remove the module (if ever).
2021-08-20 01:29:45 +02:00
Cosimo Lupo
99743c14df subset: explicitly subset ClipList, avoids warning when lazy-loading
relying on ClipList.compile to drop unused clips based on updated glyphOrder won't work when font is loaded lazily (default for subsetter), because ClipList gets decompiled too late (after glyphOrder has already been modified) and this produces warnings about missing glyphIDs.
Better to make the subsetter explicilty prune unused clips.
2021-08-18 09:42:10 +02:00
Cosimo Lupo
9c37862087 add Transform.transformVector method
Adds a transformVector and transformVectors methods to the Transform class. Useful for things like https://github.com/googlefonts/ufo2ft/pull/515
2021-08-03 11:49:44 +02:00
Cosimo Lupo
e161bbc980
Merge pull request #2384 from fonttools/newline-2021
Default to "\n" for newlinestr instead of None
2021-08-03 09:21:10 +01:00
Cosimo Lupo
094a40ca2e Revert "Deprecate and ignore newlinestr"
This reverts commit 5af178ac8eb2da79b965be5c6cee693dad602c65.
2021-08-03 10:00:13 +02:00
Cosimo Lupo
01b0180ce1 Revert "Deprecate and ignore ttx’s --newline option"
This reverts commit 3042f129fc6012bd96668831b18d0926c634f7df.
2021-08-03 10:00:01 +02:00
Cosimo Lupo
58ac5a9fd8 have ClipList and ClipBox format start at 1, not 0
b7e81fcbd6
2021-08-02 19:34:30 +02:00
Khaled Hosny
3042f129fc Deprecate and ignore ttx’s --newline option 2021-07-30 04:48:11 +02:00
Khaled Hosny
5af178ac8e Deprecate and ignore newlinestr 2021-07-30 04:31:19 +02:00