|
41c8b99b
|
2025-10-22T18:47:07
|
|
Remove unused var
|
|
653b7722
|
2025-08-25T20:15:43
|
|
[kern] Simplify Format3 collect_glyphs() (#5505)
No idea why I wrote it that way initially.
|
|
7b8ae3d0
|
2025-03-13T10:44:40
|
|
[kern/kerx] Make zero-malloc
|
|
9a4601b0
|
2025-02-04T13:14:04
|
|
[kern/kerx] Use hb-set-t for left/right, to guard bsearch
Use a set of all left glyphs participating in kerning, and all
right glyphs participating in kerning, and use these two to weed
out non-kerning pairs before bsearching into the kerns.
Speeds up shaping of HelveticaNeue by ~10%.
|
|
7a890c2e
|
2024-09-22T13:19:02
|
|
Add hb_barrier() to switches of unions
https://github.com/harfbuzz/harfbuzz/pull/4864#issuecomment-2366923736
|
|
3d3c6db4
|
2024-05-13T11:00:21
|
|
[kern] Allow format 1 / 3 in OT-style kern table
Otherwise we were failing to sanitize them, and Bad Things
were happening after.
|
|
e2ab6c7b
|
2024-05-12T15:25:13
|
|
[kern/kerx] Add accelerator and set-digest filtering
|
|
7ee7e2e3
|
2023-11-04T15:02:28
|
|
[sanitize] Add remaining hb_barrier() annotations
I'm sure I've forgot some. But this is a good start.
|
|
6d555ce8
|
2021-11-02T00:18:22
|
|
[meta] Use std::forward instead of hb_forward()
|
|
08428a15
|
2020-04-24T23:45:17
|
|
minor, spacing
|
|
0558413f
|
2019-10-01T13:49:55
|
|
Minor, tweak spaces
|
|
12092a46
|
2019-06-26T13:31:01
|
|
[config] Rename HB_NO_SHAPE_AAT to HB_NO_AAT_SHAPE
|
|
799c6a50
|
2019-05-10T23:55:22
|
|
[config] Add some
|
|
2c93f0de
|
2019-05-10T23:31:05
|
|
Add HB_NO_AAT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
|
|
83e3eabd
|
2019-05-07T20:58:43
|
|
Whitespace
|
|
36bb24f7
|
2019-05-05T10:14:17
|
|
[dispatch] Forward arguments in all dispatch multiplexers
|
|
92588782
|
2019-04-30T13:05:10
|
|
Remove space between right angle brackets now that we have C++11 (#1689)
|
|
5d4b0377
|
2019-01-22T12:11:24
|
|
Convert unsigned enum class consts to static constexpr
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
|
|
ef006549
|
2019-01-22T12:08:57
|
|
Convert tag enum class consts to static constexpr
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
|
|
39e1b6d0
|
2019-01-22T12:07:43
|
|
Convert boolean enum class consts to static constexpr
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
|
|
e4120085
|
2018-12-17T21:31:01
|
|
Remove redundant void from C++ sources (#1486)
|
|
b2ebaa9a
|
2018-12-16T22:38:10
|
|
Remove redundant 'inline' from methods (#1483)
|
|
fb059082
|
2018-11-30T20:45:40
|
|
Revert ugly fixes
Now that we have 6daf45e0, revert cryptic hacks...
This reverts commit abd81ed4f5cbc5a94171747909bc6b77551cb929.
This reverts commit 9c6921c08c905a0cf45ba0182134e6ff910fac51.
This reverts commit d39760cabfe4007cefdfc45231e85e93fababac2.
This reverts commit fedd8e6c176dea85194693399e50243eb1c117c4.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
|
|
d39760ca
|
2018-11-30T15:55:30
|
|
One more...
Sigh.
hb-ot-kern-table.hh: In member function 'int OT::KernSubTableFormat3<KernSubTableHeader>::get_kerning(hb_codepoint_t, hb_codepoint_t) const':
hb-ot-kern-table.hh:59: error: ambiguous overload for 'operator[]' in 'kernValue[kernIndex[i]]'
hb-ot-kern-table.hh:59: note: candidates are: operator[](T*, int) <built-in>
hb-dsalgs.hh:574: note: Type& hb_array_t<Type>::operator[](unsigned int) const [with Type = const OT::IntType<short int, 2u>]
|
|
5c4fead7
|
2018-11-29T15:04:34
|
|
Convert "static const hb_tag_t" constants to enum
|
|
9e4138c8
|
2018-11-29T15:01:10
|
|
Convert misc "static const" constants to enum
|
|
44cbd2ea
|
2018-11-29T14:53:43
|
|
Convert "static const bool" constants to anonymous enum
|
|
74896226
|
2018-11-23T11:10:17
|
|
[aat] Disable mark advance zeroing if kern table has state-machines
Geeza Pro for example, relies on that for fancy mark positioning.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1405
|
|
209b58ef
|
2018-11-22T01:22:33
|
|
Minor
|
|
3b9fd176
|
2018-11-22T01:18:55
|
|
Disallow taking Null() of unbounded structs
Not sure I've marked all such structs. To be done as we discover.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1300
|
|
9af983af
|
2018-11-07T16:03:09
|
|
[kern] Switch to dispatch
|
|
bc06e280
|
2018-11-07T16:02:40
|
|
[kerx/kern] Add has_cross_stream()
|
|
7a9629f2
|
2018-11-07T14:52:36
|
|
[kerx] Implement CrossStream kerning for non-state-machine subtables
Untested.
|
|
0eb41570
|
2018-11-07T14:42:15
|
|
[kerx] Disable backwards-kerning for non-state-machine tables
That's what the spec says for Backwards flag, only applicable to
formats 1 and 4.
|
|
14772da0
|
2018-11-07T13:40:22
|
|
[kern/kerx] Share KernTable, renamed to KerxTable
|
|
db6e658e
|
2018-11-07T13:33:23
|
|
[kern/kerx] More towards sharing KernTable
|
|
89ec0959
|
2018-11-07T13:10:05
|
|
[kern] Disable Format1 and Format3 for OT-style tables
|
|
ab57bcae
|
2018-11-07T13:04:21
|
|
[kern] Minor
|
|
30af5b4a
|
2018-11-07T12:57:10
|
|
[kern] Move code
|
|
1ff30046
|
2018-11-07T12:51:49
|
|
[kern] Massage more
|
|
f8c3df7d
|
2018-11-07T12:48:06
|
|
[kern/kerx] Minor
|
|
f5e0a63a
|
2018-11-07T12:32:39
|
|
[kern/kerx] Towards sharing KernTable
|
|
33050849
|
2018-11-07T12:27:44
|
|
[kern/kerx] Minor
|
|
1a5ef849
|
2018-11-07T12:19:52
|
|
[kern/kerx] Share Format2
This, enables Format2 for kern table, which was disabled before.
|
|
d5c0ca21
|
2018-11-07T12:08:44
|
|
[aat] Minor
|
|
241ba7da
|
2018-11-07T11:51:40
|
|
[morx/kerx] Rename types
|
|
c808e444
|
2018-11-07T11:28:36
|
|
[kern/kerx] Share Format1 subtable
|
|
f5f4ca78
|
2018-11-07T11:21:09
|
|
[kern/kerx] Enable crossStream kerning in vertical
CoreText doesn't, but no reason we shouldn't do.
|
|
5b178535
|
2018-11-07T10:45:25
|
|
[kern/kerx] Share Format0
|
|
c97dde5d
|
2018-11-07T10:39:39
|
|
[kern/kerx] Towards merge more
|
|
540ccc38
|
2018-11-07T10:33:46
|
|
[kern/kerx] More towards sharing
|
|
d0f8f4c2
|
2018-11-07T10:25:25
|
|
[kern] Move kern machine to hb-kern.hh
|
|
befac337
|
2018-11-07T09:53:02
|
|
[kern] Remove Override business
Not used in any fonts. Not well-specified when mixing kerning with
Cross-Stream positioning.
|
|
59e04e42
|
2018-11-07T00:25:48
|
|
[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]
|
|
8d0f7971
|
2018-11-07T00:04:40
|
|
[kern/kerx] Fix "reset" magic value
|
|
80a33b9a
|
2018-11-06T21:41:28
|
|
[kern] More tweaks
Solves a mystery or two. I'm fairly confident this is what CoreText does now.
|
|
564e8ac0
|
2018-11-06T21:04:40
|
|
[kern] Adjust some more
Getting closer. So many open questions still...
|
|
9810f0b8
|
2018-11-06T19:24:04
|
|
[kern] Minor
|
|
9c04b605
|
2018-11-06T18:35:58
|
|
[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.
|
|
e8c47724
|
2018-11-06T17:16:04
|
|
[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...
|
|
4d003b85
|
2018-11-06T21:04:02
|
|
[kern] Add TODO
|
|
01bf43ac
|
2018-11-06T14:48:42
|
|
[kern] Implement CrossStream kerning
|
|
b11830c0
|
2018-11-06T15:23:18
|
|
[kern] Improve Format 2
Still disabled.
|
|
10e6f708
|
2018-11-06T13:32:13
|
|
[kern] Minor
|
|
220a5991
|
2018-11-06T13:51:39
|
|
[kern/kerx] Fix trace numbering
|
|
164eedd9
|
2018-11-06T13:18:27
|
|
[kern] Minor
|
|
213fa3bf
|
2018-11-06T12:07:15
|
|
[kern] Refactor to include header in each subtable type
|
|
b0da2cd0
|
2018-11-06T11:16:45
|
|
[kern] Some more
|
|
75b00b51
|
2018-11-06T11:13:40
|
|
[kern] Renames
|
|
bfafe208
|
2018-11-06T12:11:45
|
|
[kern] Switch to dispatch
|
|
b605db2f
|
2018-11-04T12:58:02
|
|
[aat] Clean up ankr table include mess
|
|
8d98c51d
|
2018-11-03T15:14:57
|
|
[kern] Third try fix access violation in Format3
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11245
|
|
f074da8c
|
2018-11-03T15:06:45
|
|
[kern] Really fix access violation in Format3
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11245
|
|
0589787f
|
2018-11-03T14:58:54
|
|
[kern] Fix access violation in Format3
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11245
|
|
8034d1dd
|
2018-11-02T14:47:42
|
|
[kern] Implement Format1
Also, implement backwards kerning for Format1 in kern and kerx.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1350
|
|
46b3885c
|
2018-11-02T14:43:38
|
|
[kern] Set subtable on sanitizer
|
|
74c7a2c6
|
2018-11-02T14:26:04
|
|
[kern] Respect more flags
|
|
9f880bad
|
2018-11-02T13:57:41
|
|
[kern] Minor
We like check_struct() more.
|
|
f1df441b
|
2018-11-02T13:26:15
|
|
[kern] Comment
|
|
095f5add
|
2018-11-02T13:23:54
|
|
[kern] Push apply loop to each subtable
|
|
949dad89
|
2018-11-02T12:47:55
|
|
[kern] Remove accelerator
It wasn't doing anything.
|
|
6e06fe16
|
2018-11-02T11:56:55
|
|
[kern] Implement Format3
Untested.
|
|
a4a7a623
|
2018-11-02T11:16:43
|
|
[kern] Add buffer message
|
|
661340c4
|
2018-10-16T13:24:29
|
|
[kern] Scale kern pairs before applying
Fixes https://github.com/harfbuzz/harfbuzz/issues/1255
Fixes https://github.com/harfbuzz/harfbuzz/issues/1252
|
|
62376a7d
|
2018-10-14T15:20:50
|
|
Ignore signed-integer-overflow while kerning
Fixes https://github.com/harfbuzz/harfbuzz/issues/1247
|
|
5d34164d
|
2018-10-10T18:14:41
|
|
[kern/kerx] Fix offset base
Disable kern Format2.
Fix kerx Format2. Manually tested this with Tamil MN font and it works:
$ HB_OPTIONS=aat ./hb-shape Tamil\ MN.ttc -u 0B94,0B95
[tgv_au=0+3435|tgc_ka=1@-75,0+1517]
HB_OPTIONS=aat ./hb-shape Tamil\ MN.ttc -u 0B94,0B95 --features=-kern
[tgv_au=0+3510|tgc_ka=1+1592]
|
|
0537a401
|
2018-10-09T23:35:07
|
|
[kerx] Comment
|
|
27db8594
|
2018-10-09T22:52:41
|
|
[kern/kerx] Adjust bounds check
|
|
4df8eb20
|
2018-10-09T22:46:12
|
|
[kern] Use kern subtable length for sanitizing in the accelerator
|
|
8bff1d29
|
2018-10-09T22:39:31
|
|
[kern] Minor
|
|
210f899a
|
2018-10-09T21:56:37
|
|
[kern] Sanitize 4 bytes, not 2
|
|
977c8a8e
|
2018-10-09T00:22:08
|
|
[kern] Minor
|
|
a5195881
|
2018-10-08T23:57:45
|
|
Apply TrueType/OpenType kern table when GPOS kern feature is not available
Fixes https://github.com/harfbuzz/harfbuzz/issues/250
|
|
3c23ff9b
|
2018-10-08T23:26:26
|
|
[kern] Add kerning driver to TT kern table
|
|
683c3a95
|
2018-10-08T23:09:48
|
|
[kern] Abstract away kerning machine
|
|
d62b4011
|
2018-10-07T22:58:06
|
|
[kern] Shout less
|
|
8aa83d97
|
2018-10-07T22:43:59
|
|
[kern/kerx] Fix Format2 offsetting
"The values in the right class table are stored pre-multiplied by the
number of bytes in a single kerning value, and the values in the left
class table are stored pre-multiplied by the number of bytes in one
row. This eliminates needing to multiply the row and column values
together to determine the location of the kerning value. The array can
be indexed by doing the right- and left-hand class mappings, adding the
class values to the address of the array, and fetching the kerning
value to which the new address points."
|
|
dff2c45f
|
2018-09-10T23:29:26
|
|
Port rest from VAR to UnsizedArrayOf<>
|
|
9507b05a
|
2018-09-10T23:18:07
|
|
Simplify sanitize->check_array()
Fix a bug in CBDT sanitize, and redundant check in avar.
|
|
3a0b3a29
|
2018-08-26T15:11:24
|
|
Free up hb-ot-face.hh from includes
There might be a better way to do this, but I couldn't find...
|