Commit graph

15902 commits

Author SHA1 Message Date
Behdad Esfahbod
c5afe026bd [gvar] Comment 2023-04-26 13:44:03 -06:00
Behdad Esfahbod
87c6e68ec3 [gvar] Assertion 2023-04-26 13:20:51 -06:00
Behdad Esfahbod
0938673731 [gvar] Error handling & micro-optimization 2023-04-26 13:19:27 -06:00
Behdad Esfahbod
b6aa2d71f3 [gvar] Speed up calculate_scalar more
Use a gvar-wide cache of the one active peak index for shared-tuples
that have only one active peak. This speeds up the scalar calculation.

This shows significant speedup for the CJK VarComposite font for
example since that has tens of axes with mostly only one active peak.
2023-04-26 13:13:34 -06:00
Han Seung Min - 한승민
ffbfab123f oops docs 2023-04-26 10:56:29 -06:00
Han Seung Min - 한승민
e428edc371 [unicode] Fix typo
I believe the `hb-unicode.h` has a typo where `HB_UNICODE_COMBINING_CLASS_CCC133	= 132,` is supposed to be `HB_UNICODE_COMBINING_CLASS_CCC132`
2023-04-26 10:56:29 -06:00
Behdad Esfahbod
63afb4f2e7 [syllabic] Better fix for previous issue
With previous fix the GPOS application was still reading the syllable()
member, which was already freed.  This fix is more correct.
2023-04-26 10:29:25 -06:00
Behdad Esfahbod
c5f3b3feb1 [syllabic] Actually clear syllables
Such that they don't affect GPOS.

I broke this in 044d7a06db.
2023-04-26 10:23:34 -06:00
Behdad Esfahbod
9ee7c2ea63 [cmap] Minor remove magic number 2023-04-25 16:13:54 -06:00
Behdad Esfahbod
580b0dc1c3 [cmap] Comment 2023-04-25 16:11:01 -06:00
Behdad Esfahbod
1d31da91ce
Merge pull request #4205 from harfbuzz/gvar-optimize
Gvar optimize
2023-04-25 15:34:06 -06:00
Garret Rieger
e41f317199 [subset] Update expectation files for full_instance tests. 2023-04-25 20:54:27 +00:00
Behdad Esfahbod
f6803b06bf [VarRegionAxis] Micro-optimize
peak==0 is common.
2023-04-25 14:46:44 -06:00
Behdad Esfahbod
f91929d6da Minor return floats instead of doubles from function
Not that any compiler complained...
2023-04-25 14:42:00 -06:00
Behdad Esfahbod
808a21f8de [gvar] Simplify ref_points logic 2023-04-25 14:03:52 -06:00
Behdad Esfahbod
78a0216a03 [gvar] Write a for loop as range loop 2023-04-25 13:52:00 -06:00
Behdad Esfahbod
f654823fe0 [gvar] Handle an error case 2023-04-25 13:09:40 -06:00
Behdad Esfahbod
30d08dc62c [gvar] Populate end_points lazily
Tiny micro-optimization...
2023-04-25 12:16:04 -06:00
Behdad Esfahbod
fe8c91707b [gvar] Micro-optimize has_intermediate() access 2023-04-25 11:30:36 -06:00
Garret Rieger
2175f5d050 [subset] Fix inefficient ItemVariationStore subsetting w/ retain_gids.
ItemVariationStore is relying on the assumption that the inner_map is populated for all output glyphs, this is not true for subsetting operations with retain gids enabled. Fixes fuzzer timeout: https://oss-fuzz.com/testcase-detail/4575222591520768.
2023-04-24 18:11:48 -06:00
Behdad Esfahbod
385e23762d [var] Optimize calculate_scalar more
This change alone is showing me 14% scalar in a benchmark.
The reason being that the array::operator[] is not being invoked
a lot of time, which was, many times, hitting the unlikely() path.
Weird!
2023-04-24 17:51:58 -06:00
Behdad Esfahbod
7a3928e2b6 [var] Optimize calculate_scalar
For varfonts with lots of deltasets, the loop in this function is
*really* hot...
2023-04-24 17:38:20 -06:00
Behdad Esfahbod
8929603631 [gvar] Another minor optimization
Allocate orig_points lazily only when needed.
2023-04-24 16:16:27 -06:00
Behdad Esfahbod
20454eaa39 [gvar] Optimize by applying deltas in batches
Shows up to 7% speedup in one of my benchmarks.

One test fails by one rounding issue. To be updated.
2023-04-24 15:50:58 -06:00
Behdad Esfahbod
491aa572ce [gvar] Minor call a function instead of handcoding 2023-04-24 15:06:03 -06:00
Behdad Esfahbod
cf95f3193b [VarComposite] Another minor resue of num_points 2023-04-24 14:45:52 -06:00
Behdad Esfahbod
fc8dfe64d0 [benchmark-font] Minor rename 2023-04-24 14:39:20 -06:00
Behdad Esfahbod
0a52084228 [VarComposite] Minor resue of num_points 2023-04-24 14:23:24 -06:00
Behdad Esfahbod
a9a9f278b8 [atomic] Remove incomplete comment 2023-04-24 14:16:48 -06:00
Behdad Esfahbod
d1c00c0470 [COLR] Respect HB_NO_PAINT
Fixes https://github.com/harfbuzz/harfbuzz/issues/4204
2023-04-24 13:24:47 -06:00
Behdad Esfahbod
4129061e37 Revert "Move hb-ot-name-language-static.hh out of hb-static.cc"
This reverts commit 7b5f0dd3a8.

Fixes https://github.com/harfbuzz/harfbuzz/issues/4203
2023-04-24 13:04:05 -06:00
Behdad Esfahbod
e76a3649db [atomic] Comment 2023-04-22 10:20:25 -06:00
Behdad Esfahbod
8e43e3a8ce [priority-heap] Comment 2023-04-22 10:16:43 -06:00
Behdad Esfahbod
48f8ed7e02 Docs 2023-04-22 10:14:01 -06:00
Behdad Esfahbod
b31684dca4 [cache] Add some AI-generated comments 2023-04-22 09:47:58 -06:00
Behdad Esfahbod
bffdca89f7 [pool] Add funny Copilot comment 2023-04-22 09:32:57 -06:00
Behdad Esfahbod
a960571f24 [glyf] Comments 2023-04-21 16:45:08 -06:00
Behdad Esfahbod
2b042cc5c6 [VarComposite] Implement trim_padding() 2023-04-21 16:43:47 -06:00
Qunxin Liu
591c9460dc [instancer] compile composite glyphs directly with shifted component
points instead of deltas
2023-04-21 15:47:26 -06:00
Behdad Esfahbod
3520f528aa [CompositeGlyph] Apply gvar deltas with component transform
This was being done wrong for one of the scaled_offsets() cases.
2023-04-21 15:46:36 -06:00
Behdad Esfahbod
33972b3bf6 [glyf] Increase CompositeGlyf memory allocation
The 50% wasn't justified by logic.
2023-04-21 12:37:51 -06:00
Behdad Esfahbod
290cef39be [glyf] When instancing, just spew empty VarComposites
Before we were dropping the entire glyf table.
2023-04-21 12:22:30 -06:00
Behdad Esfahbod
4353192d05 [aat] Tweak a couple sanitize calls that are never called 2023-04-21 11:59:15 -06:00
Behdad Esfahbod
305012609b [hdmx] Remove unused unsafe function 2023-04-21 11:42:18 -06:00
Behdad Esfahbod
f74abc307d [face] Comment 2023-04-21 11:37:37 -06:00
Behdad Esfahbod
d1f49ba6d2 [VarComposites] More ifdef guards 2023-04-20 18:17:14 -06:00
Behdad Esfahbod
1e9a0511f3 [subset] Fix HB_TINY build 2023-04-20 17:47:04 -06:00
Behdad Esfahbod
106a237e40 [subset/glyf] Close over VarComposite glyphs
Subsetting VarComposite glyphs works now.
2023-04-20 17:46:07 -06:00
Behdad Esfahbod
f2d21425a3 [VarC/subset] Support subsetting VarComposites
By renumbering components.
2023-04-20 17:32:59 -06:00
Behdad Esfahbod
15d0a1dcfd [glyf] TODO 2023-04-20 17:28:10 -06:00