src/hb-subset-cff2.cc

Branch


Log

Author Commit Date CI Message
Qunxin Liu e079dd20 2024-07-01T09:36:19 [instancer] remove the warning for CFF partial instancing Don't print from the library
Qunxin Liu 0e1ffd77 2024-05-07T13:55:03 [instancer] add a warning for CFF partial instancing It's not supported yet
Behdad Esfahbod 1cb47eff 2024-02-06T14:49:31 Rename VariationStore to ItemVariationStore
Garret Rieger 9701b002 2023-11-06T22:14:31 [subset] Always place CFF1/2 char strings at the end of the packed table. Makes the behaviour from HB_SUBSET_FLAGS_IFTB_REQUIREMENTS the default.
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 cb320d22 2023-07-27T10:43:07 Revert "[cff] Use float instead of double" This reverts commit c8f67ac28eb18e65adda75818e2c472ad3936874. Tests failing.
Behdad Esfahbod c8f67ac2 2023-07-27T10:34:45 [cff] Use float instead of double Reduces memory usage slightly.
Behdad Esfahbod b0472199 2023-06-27T16:07:54 [subset/cff1] Micro-optimize code Let compiler see whether optional argument is present.
Behdad Esfahbod d4bbe3f4 2023-06-23T18:13:30 [subset/cff] Reuse a calculate index total data size
Behdad Esfahbod 97d63e8d 2023-06-23T10:43:34 [subset/cff] Move serialize to accelerator
Behdad Esfahbod 26f320dc 2023-06-23T10:24:32 [subset/cff] Remove unused method
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 64e49e0f 2023-06-22T20:27:20 [subset-cff2] Store num_glyphs in plan Like cff1 code does. Also, check for .notdef, like cff1 code does.
Behdad Esfahbod ad025ddf 2023-06-22T20:09:36 [subset-cff] Simplify a bit
Behdad Esfahbod fad2c4ae 2023-06-10T10:22:27 [subset/cff] Simplify a few serialize calls
Behdad Esfahbod 2e6919d5 2023-06-10T10:08:56 [subset/cff2] Error handling Fixes https://oss-fuzz.com/testcase-detail/4916785942757376
Behdad Esfahbod 82741304 2023-06-04T09:41:41 [subset] start_embed never returns nullptr Remove checks.
Behdad Esfahbod 21ff66cb 2023-02-19T20:00:39 [subset-cff2] Round blended Private values when instancing Hopefully no one blends BlueScale...
Behdad Esfahbod a4b7033d 2023-02-19T17:48:02 [cff2-subset] Blend Private values when instancing
Behdad Esfahbod f10a4c9d 2023-02-19T17:11:30 [cff] Rename encode_num to encode_num_cs
Behdad Esfahbod c65eb5a8 2023-02-19T15:15:57 [cff] Specialize cff_private_dict_op_serializer_t for CFF1/2
Behdad Esfahbod bf4b34e8 2023-02-19T11:16:51 [subset-cff2] Don't encode vsindex in Private dict
Behdad Esfahbod 220caa7e 2023-02-19T11:01:27 [subset-cff2] Only encode VarStore link if any varstore
Behdad Esfahbod 82d9940a 2023-02-19T10:51:55 [subset-cff2] Don't encode vsindex if pinned
Behdad Esfahbod a88f3e8d 2023-02-19T10:47:36 [subset-cff2] Don't serialize VarStore if pinned
Behdad Esfahbod 2746597b 2023-02-19T12:14:35 [subset-cff2] Add flush_hintmask Fixes https://github.com/harfbuzz/harfbuzz/issues/4125
Behdad Esfahbod 4867e0b1 2023-01-06T11:39:13 [subset-cff2] Faster instancing Instantiate blends during parsing. Dedups code as well.
Behdad Esfahbod 3757baab 2023-01-06T11:23:37 [subset-cff2] Better condition Previous condition wasn't working for dropping axes.
Behdad Esfahbod acc6c13f 2023-01-06T11:20:41 [subset-cff] Round numbers when instancing
Behdad Esfahbod 2f174f23 2023-01-06T11:11:14 Rename
Behdad Esfahbod c632a164 2023-01-06T11:01:25 [subset/cff] Support instancing
Behdad Esfahbod 65d96303 2022-12-02T14:59:26 [subset-cff2] Whitespace
Behdad Esfahbod 6012d3b2 2022-12-01T17:33:53 [subset-cff] Write out charstrings zerocopy to serializer
Behdad Esfahbod c7b998b3 2022-11-28T16:18:21 [cff2] Don't share fd-array link No point.
Behdad Esfahbod 3d9e3c2d 2022-11-28T16:17:09 [subset-cff2] Don't share varstore object
Behdad Esfahbod bab8ec58 2022-11-21T17:46:32 [subset-cff] Disable sharing when packing charstring INDEXes Saves another 8%ish.
Behdad Esfahbod 0a42410d 2022-05-10T12:05:19 [cff2] Change extents/shape stack to be just a number Do the blending immediately. Fixes https://github.com/harfbuzz/harfbuzz/issues/3559 Benchmark on AdobeVFPrototype shows 35% speedup. Now we're faster than FreeType: Benchmark Time CPU Time Old Time New CPU Old CPU New ------------------------------------------------------------------------------------------------------------------------------------------------ BM_Font/glyph_extents/AdobeVFPrototype.otf/hb -0.3792 -0.3792 1584 983 1581 982 BM_Font/glyph_extents/AdobeVFPrototype.otf/ft +0.0228 +0.0224 1220 1248 1218 1245 BM_Font/glyph_extents/AdobeVFPrototype.otf/var/hb -0.3513 -0.3518 1616 1048 1613 1046 BM_Font/glyph_extents/AdobeVFPrototype.otf/var/ft +0.0172 +0.0169 1232 1254 1230 1251
Behdad Esfahbod ac1bb3e3 2022-01-20T11:47:17 [machinery] Move accelerators to constructor/destructor
Behdad Esfahbod e062376e 2022-01-19T17:09:34 [machinery] Make accelerator lazy-loader call Xinit/Xfini Instead of init/fini. To isolate those functions. To be turned into constructor/destructors, ideally one per commit (after some SFINAE foo.)
Behdad Esfahbod a1e9a276 2022-01-18T09:27:32 [subset-cff2] Drop an constructor/destructor pair
Behdad Esfahbod de2cef42 2022-01-18T09:21:31 [bimap] Remove init/fini
Garret Rieger 46d4a5e6 2021-07-29T15:07:13 [subset] Convert subset plan to use a flags bit set.
Khaled Hosny 3e2734cf 2021-07-26T02:12:21 [docs] Don’t use GTK-Doc syntax for internal functions We don’t generate docs for them, reduces the number of warnings.
Ebrahim Byagowi d0e2addd 2020-07-18T22:14:52 minor
jfkthame 1026b3d0 2020-05-06T21:32:24 [subset] Check vector resize() call for failure (#2389) Other .resize() calls are checked, presumably this one should be as well.
Ebrahim Byagowi 2be859d2 2020-04-20T23:48:23 minor, replace nullptr checks with implicit ones
Ebrahim Byagowi 2dda6dd7 2020-04-20T14:12:45 minor, tweak spacing turn 8 spaces to tab, add space before Null/Crap
Ebrahim Byagowi 8ca9df7a 2020-03-10T10:40:05 [subset] Remove not needed blob sanitize call
ariza 5935a1dc 2020-03-03T12:12:51 add pop_discard() calls to errror returns
ariza c05458ec 2020-03-02T16:51:19 update cff & cff2 subsetters
ariza 2792fb8b 2020-02-02T22:00:53 first rewrite of cff/cff2 _subset with _subset2
Ebrahim Byagowi ce114d6b 2019-12-31T15:53:02 minor, tweak spaces
Ebrahim Byagowi 453050ad 2019-10-13T08:38:56 Merge remote-tracking branch 'upstream/master' into var-subset
Ebrahim Byagowi c7621cf2 2019-10-08T13:24:26 Minor, replace hb_set_add with private API
Ebrahim Byagowi 9ff32b79 2019-08-29T19:53:18 Merge remote-tracking branch 'upstream/master' into glyf-rebase
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
blueshade7 8bf989ea 2019-07-08T17:13:29 update from master
Michiharu Ariza 5763a927 2019-07-01T15:17:19 Merge branch 'master' into var-subset
Michiharu Ariza f3ee2bd0 2019-06-20T14:33:09 add ops & methods to hb_bimap_t making it more like hb_map_t moved has () to hb_bimap_t from hb_inc_bimap_t moved identity () to hb_inc_bimap_t removed forward()
Michiharu Ariza 09496695 2019-06-17T22:12:40 add hb_bimap_t, subclass hb_inc_bimap_t replacing CFF::remap_t
Behdad Esfahbod 737436d3 2019-06-18T13:07:44 Streamline HB_NO_CFF
Ebrahim Byagowi 9b853f75 2019-06-09T11:49:25 [cff] Use switch on multi-format structs (#1762)
Michiharu Ariza 4ddab6fa 2019-06-05T11:21:27 Merge branch 'master' into var-subset
Behdad Esfahbod ff799520 2019-05-14T07:44:03 Hopefully last warning fix
Behdad Esfahbod 7f6fca4e 2019-05-12T10:29:47 Force-disable CFF code under disabling conditions Subsetter size goes down from 190kb to 119kb. Main library about 7kb. Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 62dfe7ae 2019-05-10T23:17:15 [cff] Minor
Michiharu Ariza 02ae2591 2019-05-08T13:44:03 initialize return param subr_num in popSubrNum also snake_cased popSubrtNum and other surrounding function names
Michiharu Ariza a1177fec 2019-03-29T08:43:47 Merge branch 'master' into var-subset rebase master
Behdad Esfahbod b986c6a3 2019-03-29T20:17:46 [C++11] Remove IntType::set() in favor of operator=
Michiharu Ariza f1e97c18 2019-02-25T09:59:27 renamed hb_map2_t to hb_bimap_h in its own .hh
Michiharu Ariza a00d1d5e 2019-02-21T16:34:49 fix CFF2 local subr subsetting bug exposed by impl change of fdmap also fixed name of subr_remap_ts as subr_remaps_t
Michiharu Ariza f289ffe5 2019-02-25T09:59:27 renamed hb_map2_t to hb_bimap_h in its own .hh
Michiharu Ariza c485b77c 2019-02-21T16:34:49 fix CFF2 local subr subsetting bug exposed by impl change of fdmap also fixed name of subr_remap_ts as subr_remaps_t
Michiharu Ariza c8420109 2019-02-20T15:48:29 subset HVAR Re-implemented & repurposed CFF:remap_t as hb_map2_t (moved to hb-ot-layout-common.hh) for two-way mapping for use by index map subsetting. Hooked up HVAR subsetter through _subset2. Some renaming in CFF code.
Michiharu Ariza d817b446 2019-02-25T09:59:27 renamed hb_map2_t to hb_bimap_h in its own .hh
Michiharu Ariza a7b801f6 2019-02-21T16:34:49 fix CFF2 local subr subsetting bug exposed by impl change of fdmap also fixed name of subr_remap_ts as subr_remaps_t
Michiharu Ariza 09df17e7 2019-02-20T15:48:29 subset HVAR Re-implemented & repurposed CFF:remap_t as hb_map2_t (moved to hb-ot-layout-common.hh) for two-way mapping for use by index map subsetting. Hooked up HVAR subsetter through _subset2. Some renaming in CFF code.
Michiharu Ariza f2908b4d 2019-01-31T14:16:37 Implement subset --regain-gids option with CFF1/2 along with api tests & expected results
Garret Rieger 846e05a2 2019-01-28T16:50:20 [subset] Re-add glyphs array to subset plan, with new name 'glyphs_deprecated'. Switch CFF subsetting to use it.
Behdad Esfahbod a5e5dd8b 2019-01-22T16:30:07 Fix sign-compare error resulted from promoting unsigned integers to signed larger ints Clang and gcc know not to warn in these cases, but not nonmainstream compilers
Michiharu Ariza 29f0b6bc 2018-12-22T07:47:04 CFF renaming (#1507) * reimplement ByteStr as byte_str_t based on hb_ubytes_t Unuse start_embed<ByteStr> Also renamed SubByteStr to byte_str_ref_t More renaming to come * substr renamed to str_ref in line with its type byte_str_ref_t * uncamelize non-table struct names * uncamelized non-struct types OpCode etc * add byte_str_t copy ctor * test * test2 * undo tests * fix bot failure * undo the previous change * fixed tabs, added inline * Revert "fixed tabs, added inline" This reverts commit 21163c30e9d18759414f7fe2518628241599f039. * fix tabs
Behdad Esfahbod 474a1205 2018-12-21T18:46:51 [array/vector] Rename len to length
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Michiharu Ariza 2941208f 2018-12-11T12:21:24 [CFF] oss-fuzz issue 11690 ASSERT: substr.offset >= opStart (#1461) * fix oss-fuzz 11690: substr.offset >= opStart detect recursive subroutine call & handle as error * fix build failure * add minimized test case for oss-fuzz 11690 * removed asserts
Michiharu Ariza 33358624 2018-12-11T12:20:20 minimize use of assert: removed or changed to error handling (#1467)
Behdad Esfahbod 825df6db 2018-11-30T23:04:59 [CFF] Change spaces to tabs
Behdad Esfahbod 592f39b3 2018-11-30T22:54:57 [CFF] Whitespace
Michiharu Ariza b6903bd6 2018-11-16T13:46:58 ensure fdmap initialized as identity for single-FD (non-CID) fonts
Michiharu Ariza 9d0231cf 2018-11-15T15:39:43 fixed a subset bug when no font dicts reduce
Michiharu Ariza 0dfa584c 2018-11-12T08:47:07 changed Adobe company name
Michiharu Ariza 0996c0ff 2018-11-07T14:48:37 implented no-desubroutinize with CFF2 along with API test replaced AdobeVFPrototype.abc.otf with a hinted (maually) & subroutinized copy replaced expected results as well
Michiharu Ariza 2840a104 2018-11-01T16:18:13 tweaks to build with new merge
Michiharu Ariza 82248b92 2018-11-01T10:36:50 fix leak attempt ^2
Michiharu Ariza a9c305c2 2018-11-01T10:31:21 fix leaks
Michiharu Ariza d56e338a 2018-10-31T22:30:34 CFF1 no-desubroutinize + no-hinting no-desubroutinize option is disabled for now code cleanup (esp. CFF1 width handling) bug fixes & renaming
Michiharu Ariza 8679d02b 2018-10-18T13:04:21 implement flex ops for glyph extents/subset also removed unused CSInterpEnv::move_[xy]_with_arg fixed bug a width being left over on argStack with CFF1
Michiharu Ariza b51418f5 2018-10-08T15:05:36 added CFF2 get_extents added source hb-ot-cff2-table.cc augmented VariationData to return scalars misc bug fixes, renaming, cleanup
Michiharu Ariza 35b64dfb 2018-10-02T14:13:36 silence & fix new warnings
Michiharu Ariza ebeccf3e 2018-09-18T17:24:30 fixed char widths & standard Encoding in subset CFF also merged flush_n_args to flush_args into one takes start index of the arguments on stack instead of count