src/hb-subset-plan.cc


Log

Author Commit Date CI Message
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 730f579f 2023-07-18T15:09:36 [instancer] store float value rather than F2DOT14 int value in axes_location map
Qunxin Liu 165f3e60 2023-07-17T09:46:03 [instancer-solver] add renormalizeValue() and store axis->distances map
Behdad Esfahbod a5628848 2023-07-15T13:59:10 [subset] Speed up a couple of set iteration loops Need to speed up set::next_range() for the second one to have any effect.
Behdad Esfahbod 6783701b 2023-06-26T12:31:22 [subset] Handle an error condition Fixes https://oss-fuzz.com/testcase-detail/6306810588692480
Behdad Esfahbod 393f0f9f 2023-06-25T18:14:56 [map] Rename resize() to alloc() Better matches the functionality, and hb_vector_t.
Behdad Esfahbod ecb46f70 2023-06-23T12:18:33 [subset/cff1] Comment
Behdad Esfahbod c4b2950d 2023-06-23T11:55:39 [subset/cff1] Use cached subset-accel for seac calculations Before we were creating a new (non-subset) accel each time.
Behdad Esfahbod 5f399139 2023-06-23T11:22:01 [subset/cff] Move lazy cff-accelerator to cff-subset-accelerator Fixes https://github.com/harfbuzz/harfbuzz/issues/4295
Behdad Esfahbod 7344411c 2023-06-23T10:27:44 [subset] Sprinkle some HB_NO_SUBSET_CFF
Behdad Esfahbod 43ec78f9 2023-06-23T10:22:30 [subset/cff] Cache CFF accelerator in hb_subset_plan_t This shows 7% speedup in: BM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/retaingids/10
Behdad Esfahbod abd6c305 2023-06-22T16:44:29 [subset-plan] Micro-optimize
Behdad Esfahbod 7b53d2db 2023-06-22T16:35:11 [subset] Avoid copying gid_to_unicode multimap Construct it in the accelerator directly.
Behdad Esfahbod 272e159c 2023-06-22T16:31:50 [subset] Speed up populating reverse cmap
Behdad Esfahbod 0e16be9b 2023-06-03T19:45:44 [subset-plan] Reuse glyph_for_gid result
Behdad Esfahbod ca27925d 2023-06-03T16:18:15 Use hb_codepoint_pair_t in more places
Behdad Esfahbod 24b069cd 2023-06-02T15:55:53 [subset] Pre-alloc a few maps
Behdad Esfahbod 7319d0d7 2023-06-02T15:41:47 [subset-plan] Add a couple of map pre-allocations Approximate...
Behdad Esfahbod 76904b04 2023-06-02T15:30:12 [subset-plan] Simplify / speedup planning glyphset
Behdad Esfahbod 965ce7bb 2023-06-02T15:24:00 [subset-plan] Speed up planning new_to_old_gid_list
Behdad Esfahbod b67e464b 2023-06-02T15:11:06 [subset/retaingid] Regain perf lost In 0f12fd5a66a5dd1c3c9ac5ea8a52341bafcfe567
Behdad Esfahbod 9f54ab92 2023-06-01T17:45:03 [subset-plan] Keep a reverse-gid vector To speed up iteration.
Behdad Esfahbod 5543d058 2023-05-17T17:29:44 [subset] Use vector instead of map for glyph bounds (#4232) * [subset] Use vector instead of map for glyph bounds Is faster. Part of https://github.com/harfbuzz/harfbuzz/issues/4231 * [subset] initialize bounds_vec value to 0xFFFFFFFF Some non-EMPTY glyph might have 0 bounds width/height --------- Co-authored-by: Qunxin Liu <qxliu@google.com>
Qunxin Liu 39ac79a7 2023-05-10T10:22:49 address review comments
Qunxin Liu efc77dc6 2023-05-04T10:59:09 [instancer] update code for collecting FeatureVariationRecord
Qunxin Liu 51c7451b 2023-05-01T13:38:02 [instancer] update fvar table to accept Tripe for axes positions
Qunxin Liu 779e8ba0 2023-04-27T13:48:24 [instancer] update subset-plan.cc to accept Triple as axes positions
Behdad Esfahbod 62bc2841 2023-05-08T09:12:34 Merge pull request #4221 from googlefonts/user_glyph_map [subset] Add API method to allow a custom glyph map to be specified.
Behdad Esfahbod f772071f 2023-05-07T13:42:00 [subset-plan] Another error check
Behdad Esfahbod cda646a5 2023-05-05T15:57:13 [subset-plan] Check success of all object members
Behdad Esfahbod 5f5660fc 2023-05-05T15:52:17 [subset] In glyf-closure always add current glyph Bad things can happen otherwise if one composite glyph depleted the op count.
Garret Rieger 3021b2db 2023-05-05T05:57:05 [subset] change glyph mapping api to return a mutable map. Maintains consistency with our other set based api methods.
Garret Rieger 77a81554 2023-05-04T23:01:56 [subset] Add some basic tests for a provided glyph map.
Garret Rieger 779e8297 2023-05-04T19:31:23 [subset] fix requested_glyph_map presence check.
Garret Rieger 68266347 2023-05-04T19:18:54 [subset] apply the user supplied glyph map.
Qunxin Liu b9b85da3 2023-04-27T11:17:24 [instancer] no need to create hb_font_t object when fetching delta from varstore
Behdad Esfahbod 1e9a0511 2023-04-20T17:47:04 [subset] Fix HB_TINY build
Behdad Esfahbod 106a237e 2023-04-20T17:44:59 [subset/glyf] Close over VarComposite glyphs Subsetting VarComposite glyphs works now.
Garret Rieger 14b9d8d5 2023-04-14T20:44:15 [subset] add --no-layout-closure flag. Disables layout glyph closure. Fixes #4192.
Qunxin Liu 96ed2072 2023-04-04T10:33:58 [instancer] update bound metrics for CFF2 instancing
Garret Rieger 2cd81fdf 2023-03-30T22:11:43 [subset] fix memory leak. Fixes fuzzer issue https://oss-fuzz.com/testcase-detail/6169920089227264
Garret Rieger be872001 2023-03-24T17:30:53 [subset] fix buffer overflow fuzzer reported issue.
Garret Rieger 79ae6b65 2023-03-24T17:14:55 [subset] Fix fuzzer found memory leaks.
Garret Rieger f0f7f225 2023-03-20T18:39:49 [subset] fix fuzzer found null deref. https://oss-fuzz.com/testcase-detail/5844352760152064
Garret Rieger a84cae42 2023-03-15T02:39:57 [subset] Don't add invalid gids (-1) to the glyphset when loading glyph map from the accelerator.
Qunxin Liu 125450d2 2023-03-13T15:43:29 [subset] collect name_ids for FeratureParams
Qunxin Liu de6533d8 2023-03-13T13:36:00 [subset] collect name_ids from CPAL table
Qunxin Liu 840e1b6b 2023-02-07T13:49:19 [instancer] bug fix
Garret Rieger ea1ee0d4 2023-01-14T00:23:53 [instance] drop and don't collect lookups from feature variations when fully instancing. This previously incorrectly collected lookups that could be reached via feature variations that are dropped and not activated by the current instance position.
Behdad Esfahbod c5281052 2023-01-12T12:53:46 [subset-plan] Move construction to constructor
Behdad Esfahbod 1426f1c8 2023-01-11T13:23:34 [subset-plan] Simplify name_table_overrides allocation
Behdad Esfahbod 5cab4a55 2023-01-11T13:21:57 [subset-input] Simplify axes_location allocation
Behdad Esfahbod 4e7c8039 2023-01-11T12:38:26 [subset-plan] Simplify name_table_overrides allocation
Behdad Esfahbod 65d3db37 2023-01-11T12:36:54 [subset-plan] Simplify user_axes_location allocation
Behdad Esfahbod 60418fcb 2023-01-11T12:33:25 [subset-plan] Simplify axes_index_map allocation
Behdad Esfahbod 8265277c 2023-01-11T12:32:04 [subset-plan] Simplify axes_location allocation
Behdad Esfahbod d54902c6 2023-01-11T12:29:25 [subset-plan] Simplify axes_old_index_tag_map allocation
Behdad Esfahbod a34a204b 2023-01-11T12:27:19 [subset-plan] Simplify unicodes allocation
Behdad Esfahbod 75b33cb0 2023-01-11T12:24:35 [subset-plan] Simplify hmtx_map / vmtx_map allocation
Behdad Esfahbod 33ce3a0d 2023-01-11T12:21:26 [subset] Minor adjust a couple types
Behdad Esfahbod b2007abf 2023-01-11T11:27:22 [subset-plan] Simplify glyph_map_gsub allocation
Behdad Esfahbod bd4b040e 2023-01-11T11:23:48 [shape-plan] Simplify glyphs_requested allocation
Behdad Esfahbod c51d3368 2023-01-11T11:22:22 [subset-plan] Simplify no_subset_tables allocation
Behdad Esfahbod 999be721 2023-01-11T11:21:17 [subset-plan] Simplify drop_tables allocation
Behdad Esfahbod b33eb9ec 2023-01-11T11:20:04 [subset-plan] Simplify layout_variation_idx_delta_map allocation
Behdad Esfahbod 9c45d98f 2023-01-11T11:16:18 [subset-plan] Simplify colr_palettes allocation
Behdad Esfahbod b74a2651 2023-01-11T11:15:15 [subset-plan] Simplify colrv1_layers allocation
Behdad Esfahbod 89905368 2023-01-11T11:13:49 [subset-plan] Simplify sanitized_table_cache allocation
Behdad Esfahbod 9e24873c 2023-01-11T11:12:07 [subset-plan] Simplify gsub/gpos_feature_substitutes_map allocation
Behdad Esfahbod 01208c7c 2023-01-11T11:10:28 [subset-plan] Simplify gsub/gpos_feature_record_cond_idx_map allocation
Behdad Esfahbod 06039db0 2023-01-11T11:07:31 [subset-plan] Simplify gsub_langsys and gpos_langsys allocation
Behdad Esfahbod 5fc91de2 2023-01-11T11:04:17 [shape-plan] Simplify _glyphset_colred allocation
Behdad Esfahbod efafe7aa 2023-01-11T11:03:19 [subset-plan] Simplify _glyphset_mathed allocation
Behdad Esfahbod 113a1700 2023-01-11T11:01:11 [subset-plan] Simplify _glyphset_gsub allocation
Behdad Esfahbod 4a9268f2 2023-01-11T11:00:02 [subset-plan] Simplify _glyphset allocation
Behdad Esfahbod 1a00ab69 2023-01-11T10:56:16 [subset-plan] Simplify gsub_lookups and gpos_lookups allocation
Behdad Esfahbod 1a716bad 2023-01-11T10:51:48 [subset-plan] Simplify gsub_features and gpos_features allocation
Behdad Esfahbod 78aa9f1e 2023-01-11T10:47:40 [subset-plan] Simplify name_ids allocation
Behdad Esfahbod cfb48f91 2023-01-11T10:45:02 [subset-plan] Simplify name_languages allocation
Behdad Esfahbod e4ca0fe4 2023-01-11T10:43:01 [subset-plan] Simplify layout_features allocation
Behdad Esfahbod 4de66eec 2023-01-11T10:40:54 [subset-plan] Simplify layout_scripts allocation
Behdad Esfahbod a59116cd 2023-01-06T11:09:09 Oops
Behdad Esfahbod c632a164 2023-01-06T11:01:25 [subset/cff] Support instancing
Behdad Esfahbod c3504585 2023-01-04T13:25:03 [subset-plan] Relax const return type of a few functions Fixes https://github.com/harfbuzz/harfbuzz/issues/4003
Matthias Clasen 4adc748b 2023-01-01T09:46:11 Move Color tables to src/OT/Color/
Behdad Esfahbod aa7f5e37 2022-12-04T15:31:47 [subset] Conditionalize call to hb_font_set_variations
Behdad Esfahbod 2cdaedaf 2022-12-03T10:16:35 Use hb_enumerate in more places
Qunxin Liu 8eadb836 2022-11-10T10:33:26 [subset] Update hb_subset_input_override_name_table API Override the name string for the NameRecord identified by name_id, platform_id, encoding_id and language_ids specified by the user. If a record with specified name_id does not exist, this API will create a new NameRecord with provided info and insert it to the name table.
Behdad Esfahbod ff419789 2022-12-02T16:25:26 [subset-plan] Sort unicode_to_new_gid_list when needed
Behdad Esfahbod 1a40da4a 2022-12-02T16:13:37 [subset-plan] Use add_array instead of add_sorted_array That vector is not declared as sorted.
Behdad Esfahbod 32e049a3 2022-12-02T16:09:10 [subset-plan] Use gid-to-unicodes multimap One test fails. Need investigation.
Behdad Esfahbod 7d6893a8 2022-12-02T15:50:52 [subset-accelerator] Cache gid-to-unicodes
Garret Rieger 2c0afde7 2022-11-23T20:24:40 [subset] add an inprogress accelerator to plan. This allows subset code to cache information into the accelerator during preprocess subset. Previously the accelerator was created at the end of subsetting.
Garret Rieger 463ae07e 2022-11-23T18:41:23 [subset] In the preprocess subset call always use long loca. Long loca is needed so that we can store the trimmed glyph bytes to allow us to safely skip trimming in the later subset.
Behdad Esfahbod e0b06bd1 2022-11-21T16:09:39 [subset] Cache has_seac in accelerator Speeds up SourceHanSans-Regular/10000 benchmark by %25.
Behdad Esfahbod f6076890 2022-11-14T16:06:39 Hide all mentions of name_table_overrides behind EXPERIMENTAL_API Fixes https://github.com/harfbuzz/harfbuzz/issues/3872
Behdad Esfahbod ebc382a8 2022-11-14T15:59:46 Revert "Avoid use values () in hb-hashmap if value_t has an overriden operator &" This reverts commit b92e4cc0091e093f6941019e1a53cc04a137017a.
Qunxin Liu b92e4cc0 2022-11-14T08:54:24 Avoid use values () in hb-hashmap if value_t has an overriden operator &
Behdad Esfahbod 630f09c8 2022-11-09T11:32:30 Another hb_memcpy instead of strncpy use
Qunxin Liu 6314aa7d 2022-10-28T10:44:48 [subset] add an experimental API that can override name strings for specified name_id