Behdad Esfahbod
b2f687c256
[kerx] Use GPOS attachment facilities for CrossStream kerning
2018-11-07 14:38:29 -05:00
Behdad Esfahbod
e10a856eb2
[kerx] Format
2018-11-07 14:11:48 -05:00
Behdad Esfahbod
649cc3ef27
[kerx] Don't disable crossKerning if kern feature is off
2018-11-07 14:07:13 -05:00
Behdad Esfahbod
0c3b061ac2
[kern] Apply erlier, where GPOS/kerx are applied
2018-11-07 13:58:41 -05:00
Behdad Esfahbod
f4bad0086e
[kerx] Implement tupleKerning for Format1
...
Untested.
2018-11-07 13:51:17 -05:00
Behdad Esfahbod
39b4ef6f18
[kerx] Better sanitize tupleKerning
2018-11-07 13:48:45 -05:00
Behdad Esfahbod
14772da06f
[kern/kerx] Share KernTable, renamed to KerxTable
2018-11-07 13:40:22 -05:00
Behdad Esfahbod
c038f5be6b
[fallback] Minor
2018-11-07 13:35:06 -05:00
Behdad Esfahbod
db6e658e8c
[kern/kerx] More towards sharing KernTable
2018-11-07 13:33:23 -05:00
Behdad Esfahbod
89ec095979
[kern] Disable Format1 and Format3 for OT-style tables
2018-11-07 13:10:05 -05:00
Behdad Esfahbod
ab57bcae0f
[kern] Minor
2018-11-07 13:04:21 -05:00
Behdad Esfahbod
30af5b4a4c
[kern] Move code
2018-11-07 12:57:10 -05:00
Behdad Esfahbod
1ff300464a
[kern] Massage more
2018-11-07 12:51:49 -05:00
Behdad Esfahbod
8e9f6cd0fd
[kerx] More minor
2018-11-07 12:49:20 -05:00
Behdad Esfahbod
f8c3df7d4a
[kern/kerx] Minor
2018-11-07 12:48:06 -05:00
Behdad Esfahbod
f5e0a63a22
[kern/kerx] Towards sharing KernTable
2018-11-07 12:32:51 -05:00
Behdad Esfahbod
330508497d
[kern/kerx] Minor
2018-11-07 12:27:44 -05:00
Behdad Esfahbod
1a5ef84900
[kern/kerx] Share Format2
...
This, enables Format2 for kern table, which was disabled before.
2018-11-07 12:19:52 -05:00
Behdad Esfahbod
8faec4e334
[kerx] Towards merging Format2
2018-11-07 12:16:38 -05:00
Behdad Esfahbod
d5c0ca210f
[aat] Minor
2018-11-07 12:08:44 -05:00
Behdad Esfahbod
e72e041c3c
[kerx] Rename
2018-11-07 11:56:36 -05:00
Behdad Esfahbod
241ba7da51
[morx/kerx] Rename types
2018-11-07 11:51:40 -05:00
Behdad Esfahbod
c808e444da
[kern/kerx] Share Format1 subtable
2018-11-07 11:47:12 -05:00
Behdad Esfahbod
a244190afa
[kerx] Minor
2018-11-07 11:47:12 -05:00
Behdad Esfahbod
2a72091196
[kerx] Minor
2018-11-07 11:26:57 -05:00
Behdad Esfahbod
f5f4ca7871
[kern/kerx] Enable crossStream kerning in vertical
...
CoreText doesn't, but no reason we shouldn't do.
2018-11-07 11:21:09 -05:00
Behdad Esfahbod
d5c88af4a2
[kerx] More towards sharing Format1
2018-11-07 11:20:14 -05:00
Behdad Esfahbod
b693fd0dc6
[morx] Simplify
2018-11-07 11:10:24 -05:00
Behdad Esfahbod
ce3451dc2a
[kerx] Towards sharing Format1
2018-11-07 11:02:04 -05:00
Behdad Esfahbod
e890753ebb
[morx] Minor
2018-11-07 10:59:53 -05:00
Behdad Esfahbod
5b17853547
[kern/kerx] Share Format0
2018-11-07 10:45:25 -05:00
Behdad Esfahbod
c97dde5d55
[kern/kerx] Towards merge more
2018-11-07 10:39:39 -05:00
Behdad Esfahbod
540ccc38b0
[kern/kerx] More towards sharing
2018-11-07 10:33:46 -05:00
Behdad Esfahbod
d0f8f4c200
[kern] Move kern machine to hb-kern.hh
2018-11-07 10:25:25 -05:00
Behdad Esfahbod
a6acff252c
[kerx] Towards sharing subtables with kern
2018-11-07 10:19:57 -05:00
Behdad Esfahbod
befac337ca
[kern] Remove Override business
...
Not used in any fonts. Not well-specified when mixing kerning with
Cross-Stream positioning.
2018-11-07 09:53:50 -05:00
Behdad Esfahbod
9d5027696e
[post] Return true on truncation
...
Client can check that buffer was completely filled out and reallocate.
2018-11-07 09:16:53 -05:00
Behdad Esfahbod
7d91f07edf
[post] Protect against huge empty tables
2018-11-07 09:14:42 -05:00
Behdad Esfahbod
5ed816ab59
[post] Minor
2018-11-07 09:13:51 -05:00
Behdad Esfahbod
64f0becd89
[post] Fix bound checking
2018-11-07 09:10:55 -05:00
HinTak
7ec694ddf2
Use non-GRID-fitted values for metrics ( #1363 )
...
* Use non-GRID-fitted values for metrics
See freetype/src/base/ftobjs.c:ft_recompute_scaled_metrics() and
the usage of GRID_FIT_METRICS inside.
Fixes https://github.com/behdad/harfbuzz/issues/1262
* Update hb-ft.cc
2018-11-07 08:19:36 -05:00
Behdad Esfahbod
59e04e4231
[kern/kerx] Fix cursive joining
...
Tested with Waseem TTC:
$ hb-shape Waseem.ttc جحخج
[F1Jeem_R2=3@0,180+479|M1Khah_L2_R2=2@0,682+403|M1Hah_L2_R2=1@0,1184+403|I1Jeem_L2=0@0,1184+744]
2018-11-07 00:27:20 -05:00
Behdad Esfahbod
8d0f797139
[kern/kerx] Fix "reset" magic value
2018-11-07 00:05:10 -05:00
Behdad Esfahbod
0123976a0c
[kerx] Adjust CrossStream kern to match 'kern' table
2018-11-06 21:46:14 -05:00
Behdad Esfahbod
80a33b9ac3
[kern] More tweaks
...
Solves a mystery or two. I'm fairly confident this is what CoreText does now.
2018-11-06 21:46:14 -05:00
Behdad Esfahbod
564e8ac046
[kern] Adjust some more
...
Getting closer. So many open questions still...
2018-11-06 21:46:14 -05:00
Behdad Esfahbod
4d003b8503
[kern] Add TODO
2018-11-06 21:46:14 -05:00
Behdad Esfahbod
9810f0b80e
[kern] Minor
2018-11-06 21:46:14 -05:00
Behdad Esfahbod
9c04b60583
[kern] In Format1, adjust how kerning is done
...
In a series of kerns in one action, kern all but last glyph forward,
and the last one backward. Seems to better match what CoreText is doing.
Test cases, with GeezaPro Arabic:
$ ./hb-shape GeezaPro_10_10.ttc -u U+0631,U+0628
[u0628.beh=1+1415|u0631.reh=0@-202,0+700]
$ ./hb-shape GeezaPro_10_10.ttc -u U+0628,U+064F
[u064f.damma=0@0,-250+-250|u0628.beh=0@250,0+1665]
In a later change, I'll make kern machine avoid producing negative kerns.
2018-11-06 21:46:14 -05:00
Behdad Esfahbod
e8c4772463
[kern] XXX Negate CrossKerning sign
...
Not sure why, but seems to better match GeezaPro Arabic w CoreText.
Quite possibly I'm doing something very wrong...
2018-11-06 21:46:14 -05:00