Commit Graph

7546 Commits

Author SHA1 Message Date
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
Behdad Esfahbod
01bf43ac01 [kern] Implement CrossStream kerning 2018-11-06 17:59:31 -05:00
Behdad Esfahbod
b11830c09e [kern] Improve Format 2
Still disabled.
2018-11-06 17:59:31 -05:00
Behdad Esfahbod
c0383c6bb7 Minor 2018-11-06 17:59:31 -05:00
Behdad Esfahbod
10e6f708f3 [kern] Minor 2018-11-06 17:16:23 -05:00
Behdad Esfahbod
164eedd918 [kern] Minor 2018-11-06 17:16:23 -05:00
Behdad Esfahbod
220a5991ba [kern/kerx] Fix trace numbering 2018-11-06 17:16:23 -05:00
Behdad Esfahbod
bfafe208da [kern] Switch to dispatch 2018-11-06 12:13:20 -05:00
Behdad Esfahbod
213fa3bf71 [kern] Refactor to include header in each subtable type 2018-11-06 12:13:20 -05:00
Behdad Esfahbod
b0da2cd0b9 [kern] Some more 2018-11-06 12:13:20 -05:00