src/hb-ot-var-gvar-table.hh

Branch


Log

Author Commit Date CI Message
Behdad Esfahbod f159600c 2025-10-17T21:49:40 Fix a draw fuzzer uninitialized-memory issue (#5615) Fixes https://oss-fuzz.com/testcase-detail/5714890590584832
Behdad Esfahbod ea9b7de4 2025-09-16T16:45:02 [instancer/tuplevars] Allocate compiled_tuple_headers from alloc pool
Behdad Esfahbod f5fdf426 2025-09-16T02:28:29 [tuplevar] Use pool for duplicating
Behdad Esfahbod 12ce710f 2025-09-16T01:44:47 [tuplevar] Use alloc-pool instead of custom pool
Behdad Esfahbod 755ed109 2025-09-16T00:40:28 Add hb-alloc-pool and use in gvar instancer
Behdad Esfahbod 82370913 2025-09-15T20:16:52 [vector] Simplify resize()
Behdad Esfahbod 8e3e8c66 2025-09-15T19:49:11 [iup] Reuse more allocations
Behdad Esfahbod db86e546 2025-09-15T16:41:31 [instancer/gvar] Combine peak_coords mallocs into one chunk
Behdad Esfahbod e310f811 2025-09-15T00:58:07 [instancer/gvar] Speed up hash lookup-set
Behdad Esfahbod 7a57c3c1 2025-09-15T00:52:50 [instancer/gvar] Simplify sorting
Behdad Esfahbod b51ea436 2025-09-15T00:44:49 [gvar] Micro-opt instancing
Behdad Esfahbod 35212ba3 2025-09-14T17:46:13 [gvar] Change a storage type No functional change.
Behdad Esfahbod 323901f8 2025-09-14T13:47:32 [instancer/tuplevars] Reduce work by combining two loops
Behdad Esfahbod 0ce2b74f 2025-07-19T20:45:50 [gvar] Don't store deltas not needed For phantoms-only case. 30% speedup on v-advances func's slowest codepath (using phantom-points).
Behdad Esfahbod d47daacb 2025-05-16T01:16:12 [gvar] Remove shared_tuple_active_idx cache Reduces malloc overhead and doesn't slow things down much now that we have a shared_tuple scalar_cache.
Behdad Esfahbod c6097698 2025-05-16T01:10:43 [ot-font/draw] Use a gvar shared-tuple scalar cache for calculate_scalar Massive saving on massively variable fonts. Over 30% on a tested font.
Behdad Esfahbod f3108c4b 2025-05-15T18:31:51 [gvar] Remove outdated comment
Behdad Esfahbod 756980ce 2025-05-15T15:50:01 [TupleVariations] Cache all active indices in shared tuples
Behdad Esfahbod d3e4977c 2025-04-02T14:04:16 [gvar] Comment
Behdad Esfahbod a62058ee 2025-03-03T01:19:52 [VARC] Separate varc scratch from glyf scratch
Behdad Esfahbod 75ce774b 2025-02-28T15:25:23 [gvar] Use a method for add_delta
Behdad Esfahbod 64dbeaf0 2025-02-28T00:54:39 [glyf] Mover decycler to the scratch pad
Behdad Esfahbod 13900ce4 2025-02-26T13:41:52 [GVAR] Hook up to face and glyf table
Behdad Esfahbod ffe955b9 2025-02-26T13:40:18 [GVAR] Change offsetToData size to 24bit As per https://github.com/harfbuzz/boring-expansion-spec/issues/162
Behdad Esfahbod 894fee6d 2024-12-09T21:52:39 [GVAR] Implement table Unused. It's just like `gvar` but with 24bit glyphCount.
Behdad Esfahbod 59e6a1c4 2025-02-26T11:16:04 [glyf/Composite] Malloc-free
Behdad Esfahbod 81339256 2025-02-25T17:59:58 [gvar] Rename two variables
Behdad Esfahbod 87830b62 2025-02-25T17:59:24 [gvar] Remove unused method
Behdad Esfahbod dcb80ecb 2025-02-25T15:58:37 [gvar] Use a method
Behdad Esfahbod 23937e8c 2025-02-25T15:48:23 [gvar] Combine two loops
Behdad Esfahbod 9b451f20 2025-02-25T15:16:09 [gvar] Minor remove a variable
Behdad Esfahbod 51d8ef48 2025-02-25T00:09:28 [gvar] Cache shared_indices as well
Behdad Esfahbod 76c3beaf 2025-02-24T19:50:51 [VARC] Reduce malloc overhead
Behdad Esfahbod d2a88fbd 2025-02-12T21:48:22 [vector] Add alloc_exact()
Qunxin Liu 622e9c33 2024-11-06T10:59:17 [instancer] fix for incorrect offset calculation when we have gvar padding
Behdad Esfahbod 70ca19df 2024-09-24T08:42:44 Use hb_barrier() instead of longer name No functional change.
Qunxin Liu 6fd76e1f 2024-09-17T13:50:10 [subset] offset format fix in gvar table
Behdad Esfahbod 0037ee28 2024-05-24T08:10:15 Merge pull request #4578 from harfbuzz/varc-table `VARC` table
Garret Rieger 4cf606f6 2024-05-02T20:46:29 [instancer] Promote partial instancing api out of experimental.
Behdad Esfahbod e8139bea 2024-03-27T11:39:32 Revert "[varc] Reuse x_deltas and y_deltas vectors" This reverts commit 604f27b3069f2ef11b045cfb35e8c3a5fd99fb8b. Not worth it.
Behdad Esfahbod f97d1ea2 2024-03-27T11:38:58 [varc] Reuse x_deltas and y_deltas vectors Going to revert since it has minimal improvement with lots of piping through.
Behdad Esfahbod a94a5c63 2024-04-16T17:10:43 [varc] Add get_point_at to glyf/CFF2
Behdad Esfahbod b24511d2 2024-03-15T11:00:31 [TupleVariations] Rename encode/unpack to compile/decompile
Qunxin Liu 97309483 2024-02-02T16:59:19 [instancer] rename HB_SUBSET_FLAGS_IUP_DELTA_OPT to HB_SUBSET_FLAGS_OPTIMIZE_IUP_DELTAS
Qunxin Liu 97c85ab2 2024-01-26T16:36:56 [instancer] iup delta optimize: fix is_composite_glyph value in gvar
Qunxin Liu 0cbc8123 2024-01-26T11:26:10 [instancer] add iup_optimize() call into instantiation
Garret Rieger bb5c7ccb 2023-12-19T20:55:46 Also enforce IFTB requirements during instantiation of gvar.
Garret Rieger c6884377 2023-11-06T20:21:46 [subset] Add HB_SUBSET_FLAGS_IFTB_REQUIREMENTS flag. When enabled the output subset conforms to the requirements for a base font to be patched by IFTB patches. IFTB is a proposed incremental font transfer patch. This new flag is set as experimental. Currently, setting this flag causes the output subset to also use long offsets for outline data in loca/glyf, gvar, CFF, and CFF2. This change is a version of https://github.com/skef/harfbuzz/commit/3ae2fe2084d96f61d8ad1bbe42a6ef4e62ec830a rebased onto head w/ tests added.
Behdad Esfahbod 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.
Qunxin Liu fd3eb2c6 2023-08-24T08:59:18 fuzzer fix: https://oss-fuzz.com/testcase-detail/6032126569742336
Qunxin Liu fb447274 2023-08-07T09:44:41 [instancer] add instantiate () for gvar
Qunxin Liu 746b112f 2023-08-07T09:26:42 [instancer] add serialize () for gvar
Qunxin Liu 3c86b096 2023-07-28T16:18:51 [instancer] Add instantiate () and compile_bytes() for gvar -Also add support for using shared_points and shared_tuples
Qunxin Liu 198612c1 2023-07-28T15:41:54 [instancer] add decompile_glyph_variations () for gvar
Qunxin Liu eb116e16 2023-07-28T15:27:07 [instancer] Add new_gid->contour_points vector map in subset plan - Add an API in Glyph to export original contour_points vector, which is needed by infer_deltas when merging tuple variations with the same tent
Qunxin Liu a0f810ef 2023-07-28T15:04:47 [instancer] add struct glyph_variations_t for gvar -Add compile_peak_coords () in tuple_delta_t -Add compile_shared_tuples () for glyph_variations_t
Behdad Esfahbod e92eefaa 2023-07-02T11:35:51 [gvar] Cache two values in shared_tuple_active_idx Speeds up varc-hangul.ttf draw_glyph by 10%.
Behdad Esfahbod fc38c01a 2023-06-29T15:29:15 Minor inline a function
Behdad Esfahbod a520177e 2023-06-29T14:56:05 [gvar] Remove unnecessary initialization
Behdad Esfahbod c49ca371 2023-06-29T12:38:45 [Glyph] Minor micro-optimize away a function call For when coords are not set.
Behdad Esfahbod f5eead04 2023-06-28T15:07:15 [glyf/gvar] Optimize getting variable phantom points Used when there's no HVAR table and get_h_advance(). I see some 10% speedup with a SourceSerifVariable-Roman with the HVAR table removed.
Behdad Esfahbod bc6dbf43 2023-06-03T21:09:33 [subset/gvar] Micro-optimize
Behdad Esfahbod 84134753 2023-06-03T21:08:30 [subset/gvar] Speed up for retaingids
Behdad Esfahbod 2fb670a5 2023-06-03T20:56:04 [subset/gvar] Speed up for retaingids
Behdad Esfahbod 491f2968 2023-05-01T15:58:57 [gvar] Micro-optimize We don't need the flag in the case of apply_to_all.
Behdad Esfahbod 1b74cd7c 2023-05-01T15:41:12 [gvar] Micro-optimize
Behdad Esfahbod 700975f7 2023-04-29T11:23:56 [gvar/glyf] Minor save a variable
Behdad Esfahbod 4a102eff 2023-04-28T14:38:34 [gvar] Minor always pass cache We now check for access in calculate_scalar(), so no need to check fof error here.
Behdad Esfahbod c800c0cf 2023-04-27T15:12:02 [Glyph] Load composite glyphs in-place
Behdad Esfahbod 1056590f 2023-04-27T10:41:36 [config] Add HB_OPTIMIZE_SIZE_VAL
Behdad Esfahbod 726590ed 2023-04-27T10:13:39 [gvar] Add optimize-size code path
Behdad Esfahbod a200f0a3 2023-04-26T17:29:49 [gvar] Micro-optimize
Behdad Esfahbod db86e977 2023-04-26T17:08:53 [gvar] Micro-optimize
Behdad Esfahbod 27b8a208 2023-04-26T16:54:58 [gvar] Minor variable reuse
Behdad Esfahbod fd52c4cf 2023-04-26T16:27:51 [gvar] Comment
Behdad Esfahbod 0c59c629 2023-04-26T16:20:16 [gvar] Micro-optimize For cases where no deltaset applies.
Behdad Esfahbod 2a3bf5a5 2023-04-26T15:58:55 [gvar] Minor error-handling
Behdad Esfahbod 57faabb7 2023-04-26T15:56:04 [gvar] Micro-optimize
Behdad Esfahbod c5afe026 2023-04-26T13:44:03 [gvar] Comment
Behdad Esfahbod 09386737 2023-04-26T13:19:27 [gvar] Error handling & micro-optimization
Behdad Esfahbod b6aa2d71 2023-04-26T13:06:24 [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.
Behdad Esfahbod 808a21f8 2023-04-25T14:03:52 [gvar] Simplify ref_points logic
Behdad Esfahbod 78a0216a 2023-04-25T13:52:00 [gvar] Write a for loop as range loop
Behdad Esfahbod f654823f 2023-04-25T13:09:40 [gvar] Handle an error case
Behdad Esfahbod 30d08dc6 2023-04-25T12:13:57 [gvar] Populate end_points lazily Tiny micro-optimization...
Behdad Esfahbod 89296036 2023-04-24T16:16:27 [gvar] Another minor optimization Allocate orig_points lazily only when needed.
Behdad Esfahbod 20454eaa 2023-04-24T15:50:58 [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.
Behdad Esfahbod 491aa572 2023-04-24T15:05:18 [gvar] Minor call a function instead of handcoding
Behdad Esfahbod 552290f6 2023-03-08T10:25:26 [gvar] Fix out-of-memory access issue Fixes https://oss-fuzz.com/testcase-detail/5953342850596864
Behdad Esfahbod ea17c7a8 2023-03-07T14:23:39 [beyond-64k] Implement gvar support https://github.com/harfbuzz/boring-expansion-spec/issues/85
Qunxin Liu 22cc73f3 2023-02-06T12:36:05 Move common structs for TupleVariation from gvar to var-common.hh Also added a table_base in the iterator and related function to handle different start address for dataoffset in cvar and gvar
Behdad Esfahbod c8486b63 2023-01-07T14:15:17 [open-type] Add to_int to fixed types To make sure we don't accidentally forget to_float(). As we did recently in COLRv1 code.
Behdad Esfahbod 8e468700 2022-12-09T18:35:30 [gvar] Take coords in instead of font in apply_deltas_to_points
Behdad Esfahbod 0545949f 2022-12-04T12:44:09 [gvar] Minor use array get_size()
Behdad Esfahbod 44be8ef4 2022-11-22T14:21:25 [gvar] Skip degenerate all-untouched delta-sets
Behdad Esfahbod 656bb223 2022-11-22T14:16:40 [gvar] Micro-optimize unpack_points
Behdad Esfahbod a3830272 2022-11-22T14:15:17 [gvar] Cosmetic
Behdad Esfahbod be89919a 2022-11-22T13:56:20 [gvar] is_valid() remove a check I don't know why this check was there, but it doesn't make sense because that function never returns 0 / false.
Behdad Esfahbod e8ddf107 2022-11-22T13:29:32 [gvar] Optimize a loop
Behdad Esfahbod dd6fcec9 2022-11-22T13:27:40 [gvar] Remove a conditional