src/hb-subset.h

Branch


Log

Author Commit Date CI Message
Garret Rieger aa58b43d 2025-09-12T14:24:41 [subset] Introduce HB_SUBSET_FLAGS_RETAIN_NUM_GLYPHS. (#5547) Used in conjunction with retain gids, when set the num glyphs from the input font will be preserved. Empty glyphs will be inserted as necessary to maintain the num glyphs value. Put under experimental for now.
Khaled Hosny 416e6b69 2025-04-16T20:21:27 11.1.0
Garret Rieger efcb7d3d 2025-04-11T23:34:06 [subset] close unicodes over bidi mirror variants during subsetting. Fixes #5281. Does the closure by default, but I've introduced a new flag and option to disable this behaviour since some users may want to get the minimal set if they know they don't need the mirrored variants.
Behdad Esfahbod 623a7a41 2025-04-04T13:25:06 Whitespace
Garret Rieger a1e587b7 2025-03-31T22:02:11 [subset] Add hb_subset_cff_get_charstrings_index and hb_subset_cff2_get_charstrings_index. These methods allow retrieving the entire charstrings index structure from a CFF or CFF2 table.
Behdad Esfahbod 82d66451 2025-03-27T17:47:56 [subset] Fix check-symbols test
Garret Rieger ae8b288d 2025-03-27T22:07:01 [subset] Correctly handle lifetime of charstrings data blob returned by hb_subset_cff_get_charstring_data.
Garret Rieger 0d4053b1 2025-03-27T18:45:12 [subset] Add hb-subset.h API for retrieving the raw per glyph outline data from CFF and CFF2.
Qunxin Liu 3bb89eeb 2024-11-24T17:00:14 [instancer] use hb_parse_double() for parsing axis positions Added hb_subset_axis_range_from/to_string()
Khaled Hosny 71b1ba7a 2024-05-13T23:07:51 8.5.0
Garret Rieger 4cf606f6 2024-05-02T20:46:29 [instancer] Promote partial instancing api out of experimental.
Qunxin Liu d6431dc7 2024-03-06T15:20:10 [instancer] support *=drop, which would pin all axis to default location
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 c7a6030b 2024-01-26T09:27:27 [instancer] add a flag HB_SUBSET_FLAGS_IUP_DELTA_OPT
Garret Rieger d30c1dac 2023-11-15T20:16:07 Add test suite for instancing option parsing.
Garret Rieger 43236ce3 2023-11-01T22:34:39 [instancer] add the option to leave blanks in the min:def:max syntax. When parsing axis positions in the --variations flag recognize empty values as meaning the existing value for that part. For example: :300:500 Specifies min = existing, def = 300, max = 500. See: https://github.com/fonttools/fonttools/issues/3322
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.
Qunxin Liu 32cfa37e 2023-05-08T13:30:39 [instancer] command line support for partial instancing -Also updated hb_subset_input_set_axis_range (), so user can define default value as well
Qunxin Liu 58f68dd3 2023-05-04T14:25:14 [instancer] wrap hb_subset_input_Set_axis_range() under experimental Also add notes: it's not actually working yet.
Qunxin Liu 0799afe2 2023-04-20T14:02:20 [instancer] Add hb_subset_input_set_axis_range() API
Garret Rieger 8eb9f312 2023-05-05T15:56:50 [subset] s/Since/XSince/.
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 e14020b2 2023-05-04T19:24:01 [subset] remove return value from mapping setting function.
Garret Rieger e711e305 2023-05-04T18:47:55 [subset] Add new subsetting API method to receive a user specified glyph mapping.
Khaled Hosny a321c4fe 2023-04-27T00:48:00 7.2.0
Garret Rieger 90356eb2 2023-04-14T20:52:35 [subset] Note --no-layout-closure is only for GSUB.
Garret Rieger 14b9d8d5 2023-04-14T20:44:15 [subset] add --no-layout-closure flag. Disables layout glyph closure. Fixes #4192.
Khaled Hosny 16dfd263 2023-02-11T19:31:29 [subset] Remove docs for unimplemented flags GTK-Doc does not like this.
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
Behdad Esfahbod 4a5bd7a9 2023-01-01T16:53:28 [subset] Add hb_subset_input_keep_everything() Fixes https://github.com/harfbuzz/harfbuzz/issues/3998 New API: + hb_subset_input_keep_everything()
Behdad Esfahbod 7f73b57b 2022-12-10T17:35:52 [subset] Graduate L1 instancing API from experimental Fixes https://github.com/harfbuzz/harfbuzz/issues/3926
Garret Rieger eda02c2e 2022-12-05T20:18:41 [subset] Move hb_subset_preprocess to be non-experimental.
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.
Qunxin Liu 6314aa7d 2022-10-28T10:44:48 [subset] add an experimental API that can override name strings for specified name_id
Garret Rieger f53ebf55 2022-10-14T19:38:19 [subset] Add hb_subset_preprocess to experimental symbol list for check-symbols.
Garret Rieger 515863e5 2022-10-13T23:42:00 [subset] Remove add accelerator flag, replace with new api method. Adds hb_subset_preprocess() which preprocesses the face and attaches accelerator data.
Garret Rieger f4903def 2022-10-13T21:38:54 [subset] use the accelerator in the subsetting benchmark.
Garret Rieger f105c287 2022-10-13T18:53:41 [subset] Suggested flags to enable more performant subset production for use in incxfer.
Khaled Hosny 40b21edf 2022-07-23T16:45:32 5.0.0
Qunxin Liu 2a4773e4 2022-06-21T19:29:52 add option "--instance", store axes_location in subset_plan and drop all variation tables when all axes are pinned at default
Garret Rieger 216cf594 2022-07-05T17:49:12 [subset] Allocate space for null entry in script/feature list.
Garret Rieger 70e32a66 2022-06-30T21:00:48 [subset] Add layout_scripts to subset input.
Garret Rieger f6071c16 2022-02-28T14:45:40 [subset] Rename codepoint -> unicode in subset plan api
Garret Rieger 670ef070 2022-02-11T16:01:33 [subset] Change subset plan create to be or_fail.
Garret Rieger ae8d373b 2022-02-11T14:54:23 [subset] add subset plan reference, set/get user data functions.
Garret Rieger b65e48a7 2022-02-11T12:44:58 [subset] Add subset plan to public API. Add the ability to create a subset plan which an be used to gather info on things like glyph mappings in the final subset. The plan can then be passed on to perform the subsetting operation.
Garret Rieger d700646c 2021-09-16T11:23:09 [subset] In preperation for 3.0.0 release remove legacy subsetting api methods.
Khaled Hosny 9b7af950 2021-09-07T15:05:42 [docs] Fix subset documentation List the missing new APIs and unlist all the to be deleted legacy APIs.
Khaled Hosny 505df5ab 2021-09-07T13:46:08 2.9.1
Garret Rieger de856365 2021-08-30T14:36:05 [subset] s/REPLACE/REPLACEME/
Garret Rieger 50193262 2021-08-25T15:10:21 [subset] reorder set enums.
Garret Rieger 3282f540 2021-08-25T15:06:42 [subset] restore legacy set api methods.
Garret Rieger 1457c1f0 2021-08-25T15:01:28 [subset] set enum name changes.
Garret Rieger 1b5e1593 2021-08-25T14:56:55 [subset] Remove HB_SUBSET_SETS_COUNT and flags comment.
Garret Rieger 4c389fd9 2021-08-13T11:14:52 [subset] add unicode and glyph set enums.
Garret Rieger e3e1ae87 2021-08-13T10:53:20 [subset] proposed update to subset set apis.
Garret Rieger f2441a4b 2021-08-24T15:53:32 [subset] Remove retain all layout features flag. Instead use inverted sets to handle requesting all features. Modifies feature collection in subset plan to intersect the set of requested features against the features in the font. This prevents iterating a fully filled feature tag set.
Khaled Hosny 9aa6f8a9 2021-08-18T09:32:04 2.9.0
Garret Rieger d18aad7e 2021-08-13T15:05:48 [subset] restore old subsetting api methods. These will be left in place until the 3.0.0 release.
Ben Wagner f5ba1fab 2021-08-07T16:05:51 Fix documentation of hb_subset_flags_t defaults HB_SUBSET_FLAGS_DEFAULT is 0, and hb_subset_input_create_or_fail initializes its flags to HB_SUBSET_FLAGS_DEFAULT, so currently all flags are set to false by default. It has been decided that future flags will also be false by default for simplicity (using NO_ in the name if needed). Correct and simplify the documentation for hb_subset_flags_t to reflect this.
Garret Rieger f9d8e4a9 2021-07-29T15:25:41 [subset] switch ..._set_flags to not take a mask.
Garret Rieger 3d534b14 2021-07-29T11:52:14 [subset] convert subset input flags into bit flags. Store the flags in a bit set. Updates the public api to work with the bit set directly.
Behdad Esfahbod 4762fcb4 2021-07-26T11:48:55 Merge pull request #3067 from googlefonts/glyph_names [subset] support option --glyph-names
Khaled Hosny ec99fdb7 2021-07-26T01:35:13 [sebset] Use [s|g]et_flag for retain_all_layout_features Looks like this was missed when adding hb_subset_input_[s|g]et_flag()
Khaled Hosny acc7100a 2021-07-26T02:13:49 [docs] Improve subset documentation
Qunxin Liu 71b5509c 2021-07-20T20:05:35 [subset] support option --glyph-names
Garret Rieger 89fc399e 2021-07-22T13:00:34 [subset] Add hb-subset section documentation.
Garret Rieger 792e2ed6 2021-07-22T12:41:48 [subset] convert no get/set prune unicode ranges to enum.
Garret Rieger 1b6c1aa6 2021-06-28T12:57:39 [subset] add hb-subset api to documentation generator. Standardize subset_input parameter to be input.
Garret Rieger 8ce96834 2021-06-23T13:55:11 [subset] add documentation for all hb-subset.h methods.
Garret Rieger 9ab751ac 2021-06-23T13:38:47 [subset] Remove hb_subset(). Leaving just hb_subset_or_fail().
Garret Rieger e5c887fc 2021-06-23T13:19:25 [subset] add documentation for subset input flag enums.
Garret Rieger 372722ce 2021-06-23T13:10:03 [subset] move notdef_outline to the subset input property enum.
Garret Rieger a6c6cda4 2021-06-09T17:46:47 [subset] Add no subset tables and passthrough unrecognized tables to the subset api. Matches fontTools options.
Garret Rieger 668f2bd9 2021-06-09T16:33:50 [subset] Add hb_subset_or_fail () to public subset api.
Garret Rieger aba2e131 2021-06-09T16:23:35 [subset] Remove hb_subset_input_get/set_overlaps_flag ().
Garret Rieger 7d82191f 2021-06-09T16:20:55 [subset] Remove hb_subset_input_get/set_name_legacy ().
Garret Rieger 942636ae 2021-06-09T16:18:39 [subset] Remove hb_subset_input_get/set_retain_gids.
Garret Rieger 77b4a1cd 2021-06-09T14:11:17 [subset] Remove hb_subset_input_get/set_desubroutinize.
Garret Rieger 8bf5d4d4 2021-06-09T14:05:17 [subset] Remove hb_subset_input_get/set_drop_hints.
Garret Rieger 38de3491 2021-06-09T12:54:14 [subset] add implementation for get/set flag on subset input.
Garret Rieger 83727837 2021-06-09T11:09:14 [subset] add proposed enum property get/set method.
Garret Rieger b38e49dc 2021-06-09T10:57:58 [subset] add get/set user data methods to subset input.
Garret Rieger edb57a8d 2021-06-09T10:42:48 Make subset input const in the subsetting operation. Don't modify the subset input's sets.
Qunxin Liu eee7b459 2021-06-24T10:17:46 [subset] add option --no-prune-unicode-ranges
Qunxin Liu d07f789a 2021-06-09T15:36:40 [subset] support option "--notdef-outline"
Garret Rieger 18f61210 2021-05-27T16:01:17 Add public api methods to get/set the layout features to retain.
Garret Rieger 73ff04a3 2021-05-18T16:54:01 [subset] add option to have the subsetter set the mac overlaps flag on each glyph.
Qunxin Liu 36a5c042 2020-01-21T13:37:28 [subset] Add "--name-languages" and "--name-legacy" options Make name table subsetting consistent with fontTools
Ebrahim Byagowi e171beeb 2020-01-24T19:51:21 Revert "[subset] Add "--name-languages" and "--name-legacy" options" Causes tests failures, please reapply when tests are fixed, thanks. This reverts commit fd85818b5b85fb0ad2db71c60e94ca0689d38bca.
Qunxin Liu fd85818b 2020-01-21T13:37:28 [subset] Add "--name-languages" and "--name-legacy" options Make name table subsetting consistent with fontTools
Ebrahim Byagowi a0b4ac4d 2019-08-24T17:57:14 Turn 8 spaces to tab across the project According to the current code style of the project
Garret Rieger 0ff3618c 2019-05-17T15:30:01 [subset] Use hb_subset_input_t inside of subset_options_t so that input defaults are shared between the library and cli.
Garret Rieger 3be0ffe4 2019-05-16T11:29:15 [subset] Add drop tables to subset input.
Qunxin Liu e501ea14 2019-04-05T10:05:55 [subset] Subset name table step 3, add --nameids option to guide the selection of which name records to keep in the subset method.
Garret Rieger b7f97188 2019-01-17T18:55:56 Add retain_gids option to subset input. Update glyf and loca handling to respect retain_gids.
Michiharu Ariza b403be8a 2018-11-16T12:29:18 Merge branch 'master' into cff-subset
Ebrahim Byagowi 11aa0468 2018-11-15T23:10:56 [subset] minor, adjust spaces
Michiharu Ariza 6186dbf1 2018-11-01T17:25:23 added hb_subset_input_set_desubroutinize API hooked up with CFF1 subroutinizer a renaming
Behdad Esfahbod 93fe0faa 2018-08-29T18:24:03 [subset] Clean up hb_subset_input_t API