Tue 05 Dec 2017 05:45:51 PM UTC, comment #9:
Looks good, thank you!
|
Mon 04 Dec 2017 11:37:10 AM UTC, comment #8:
Thanks a lot! Should now be fixed in git, please test.
|
Mon 04 Dec 2017 10:08:26 AM UTC, comment #7:
PS: Latest freetype version from the git repository (c18c391b688a59a1c1e8366e216e473c1bd6361c)
|
Mon 04 Dec 2017 10:06:57 AM UTC, comment #6:
I have attached two images from ftmulti.
The correct rendering is indeed the "noshared" version, and you are right, both should identical because the only difference is in the structure of point packing in the cvar table.
The renderings were produced with:
<tt>ftmulti -d 24 32 VotoSerifGX-IUP-gvar-cvar_noshared.ttf</tt>
<tt>ftmulti -d 24 32 VotoSerifGX-IUP-gvar-cvar.ttf</tt>
|
Sun 03 Dec 2017 08:36:25 AM UTC, comment #5:
While playing around with the two fonts I don't get a difference in rendering, not being able to reproduce the shown effect in the image. Obviously, I'm doing something wrong...
Please provide two images with exact axis values for a given ppem size (ideally using ftmulti or ftgrid) that shows how the shared and no-shared variants look like with FreeType (also providing the exact version information).
I assume that the results of no-shared are the right ones, and the other font should produce the same, right?
|
Fri 01 Dec 2017 06:19:16 PM UTC, comment #4:
As far as getting hinted outlines, it appears that the issue is that at https://github.com/unicode-org/text-rendering-tests/blob/3276936544a01ed15ee30fd5caae3b268a7d7d0f/src/fonttest/freestack_font.cpp#L98 the test is specifically loading the glyph with FT_LOAD_NO_HINTING. If you want to get bytecode hinted paths or unhinted paths (it appears you don't really want to test the auto-hinter here) you'll want FT_LOAD_NO_AUTOHINT instead, I think. Hinting happens mostly to the path (some drop out stuff also applies to rasterizing).
|
Wed 29 Nov 2017 04:56:26 PM UTC, comment #3:
I tried adding test cases to the Unicode test suite for text rendering:
https://rawgit.com/unicode-org/text-rendering-tests/master/reports/FreeStack.html#CVAR-1
However, FreeType still passes the CVAR tests. My test framework works by asking FreeType (and the other implementations under test) for outlines, and then it converts those outlines to SVG. Apparently, FreeType returns unhinted outlines, which of course makes total sense for most applications. For the test suite, however, it would actually be nice if there was some way to get hinted outlines. Is there a way to do that? (If not, it’s no big deal; this bug can surely be reproduced otherwise).
|
Tue 28 Nov 2017 10:33:27 AM UTC, comment #2:
I have added the test fonts to the Unicode rendering tests on GitHub:
https://github.com/unicode-org/text-rendering-tests/pull/44
|
Mon 27 Nov 2017 04:05:28 PM UTC, comment #1:
The quote from the OT spec was cut off, this is the full text:
PRIVATE_POINT_NUMBERS Flag indicating that the serialized data for this tuple variation table includes packed “point” number data. If set, this tuple variation table uses that number data; if clear, this tuple variation table uses shared number data found at the start of the serialized data for this glyph variation data or 'cvar' table.
|
Mon 27 Nov 2017 04:03:38 PM UTC, original submission:
http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/src/truetype/ttgxvar.c#n3014
/* The documentation implies there are flags packed into */
/* `tupleCount', but John Jenkins says that shared points don't apply */
/* to `cvar', and no other flags are defined. */
It looks like John Jenkins wasn't right. Per the OT spec 1.8, shared points apply to cvar. Freetype doesn't handle this correctly, see attached fonts and image.
Both TTFs are compiled from the same ttx file with the Python FontTools. The one which looks reverse-contrast has cvar shared ‘points’ (actually they’re CVTs) on, the one which looks normal doesn't use shared points.
|