src/hb-ot-cff2-table.hh


Log

Author Commit Date CI Message
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 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 7a124a0b 2023-06-22T20:18:20 [cff1] Use constructor for accelerator_templ_t
Behdad Esfahbod ad025ddf 2023-06-22T20:09:36 [subset-cff] Simplify a bit
Behdad Esfahbod b80b6a4f 2023-06-06T18:11:55 [cff] Remove unused types
Behdad Esfahbod ffc6899b 2023-06-05T14:16:47 [subset/cff1] Use a vector, instead of map, for glyph_to_sid_map Much faster.
Khaled Hosny b6516f3b 2023-05-08T15:31:24 [cff] Fix the case of HB_OT_TAG_cff(1|2) macros Should be upper case like other HB_OT_TAG_* macros of upper case tables.
Behdad Esfahbod 7c74fc96 2023-02-19T14:43:07 [CFF] Remove unused member single_val
Matthias Clasen 9be01b6b 2022-12-21T14:04:32 [paint] Pass hb_paint_context_t along Replace the font argument with a hb_paint_context_t that carries the font, the palette index and the foreground color. The hb_font_paint_glyph() api now takes the palette index and the foreground color as extra arguments. Update all callers and regenerate test results.
Matthias Clasen 3e39dd49 2022-12-16T23:46:15 cff2: Implement paint_glyph
Behdad Esfahbod 32dd9810 2022-11-30T13:15:58 [subset-cff1] Cache glyph-to-sid-map in the accelerator Benchmark Time CPU Time Old Time New CPU Old CPU New --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/10 -0.0841 -0.0843 0 0 0 0 BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/64 -0.1305 -0.1305 0 0 0 0 BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/512 -0.1398 -0.1401 1 1 1 1 BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/4096 +0.0382 +0.0380 9 9 9 9 BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/10000 +0.0213 +0.0211 11 11 11 11
Garret Rieger 8d5c899b 2022-11-25T20:33:39 [subset] In cff accelerator hold reference to CFF table instead of the whole font.
Behdad Esfahbod 59c45f6d 2022-11-22T12:54:50 Use hb_memcpy instead of memcpy consistently
Behdad Esfahbod bff78e65 2022-05-10T16:33:37 [cff] Convert interpretation environment to use constructor
Behdad Esfahbod 8aa54aac 2022-05-09T16:09:56 [cff] Replace byte_str_t with hb_bytes_t use
Behdad Esfahbod fe1d85a5 2022-05-09T16:04:52 [cff] Remove custom byte_str_t impl
Behdad Esfahbod 370bec93 2022-02-04T18:40:44 [draw] Rename internal draw_session_t to hb_draw_session_t
Behdad Esfahbod c681331c 2022-02-03T14:36:12 [draw] Rename internal draw_helper_t to draw_session_t
Behdad Esfahbod dd7b6e2c 2022-02-02T14:46:10 [draw] Remove EXPERIMENTAL_API tag
Behdad Esfahbod a8b7f188 2022-01-21T07:38:33 [cff] Initialize accelerator members
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 4eb6e6ea 2022-01-18T12:07:05 [cff] Remove some more fini_deep()
Garret Rieger 7f358a55 2020-07-30T13:57:30 [ENOMEM] unchecked resize in CFF2.
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 755a77d6 2020-01-29T22:26:04 Move outline draw API behind HB_EXPERIMENTAL_API directive
ariza 0b290538 2020-03-04T22:31:21 removed unused code
ariza e8f010d7 2020-03-04T16:54:27 removed unused code & data; rename
ariza c05458ec 2020-03-02T16:51:19 update cff & cff2 subsetters
Ebrahim Byagowi 9fe0dc34 2020-02-26T17:40:44 [draw] Pass draw_helper_t itself around instead recreating it Specially helpful if we want to change the design
Ebrahim Byagowi 25707e37 2020-02-05T00:27:28 [cff] minor
ckitagawa 0d61926c 2020-02-04T13:36:51 [subset] Keep head when no glyf table
ariza 2792fb8b 2020-02-02T22:00:53 first rewrite of cff/cff2 _subset with _subset2
Ebrahim Byagowi ac81e940 2020-01-28T12:34:47 Rename hb_outline_decompose to hb_font_draw_glyph and hb_outline_decompose_funcs_t to hb_draw_funcs_t
Ebrahim Byagowi 981125aa 2020-01-25T21:31:36 Rename hb_ot_glyph_* to hb_outline_*
Ebrahim Byagowi ec1fba13 2020-01-13T19:31:18 [ot-glyph] make hb_ot_glyph_decompose_funcs_t struct opaque
Ebrahim Byagowi 084a8182 2020-01-10T22:14:46 [ot-glyphs] Move CFF glyph decompose logic to their tables Thus making path decompose zero alloc on CFF/CFF2
Ebrahim Byagowi 04ac7fb1 2019-10-21T13:06:12 [ot-glyph] Add cff2 support
Ebrahim Byagowi 9b853f75 2019-06-09T11:49:25 [cff] Use switch on multi-format structs (#1762)
Michiharu Ariza be82a2fc 2019-06-03T15:52:23 parenthesized cond-exp in CFF2FDSelect::sanitize
Behdad Esfahbod ef006549 2019-01-22T12:08:57 Convert tag enum class consts to static constexpr Part of https://github.com/harfbuzz/harfbuzz/issues/1553
Behdad Esfahbod 6d042a18 2019-01-20T19:49:59 [CFF] Use enum for tableTag
Behdad Esfahbod cf7edf52 2019-01-20T19:49:59 [CFF] Use enum for tableTag
Behdad Esfahbod b1152d5e 2019-01-17T18:17:04 Use NNOffsetTo<>
Michiharu Ariza 09fa536d 2018-12-27T08:33:09 fix lealk with cff2::accelerator_templ_t::topDict (#1517)
Behdad Esfahbod d25a2f14 2018-12-23T20:19:52 Fix a few warnings
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
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)
Ebrahim Byagowi f95324a3 2018-12-06T08:33:44 Merge pull request #1457 from harfbuzz/cff-varstore-sanitize [CFF] oss-fuzz issue 11713 (CFF2VariationStore::serialize)
Michiharu Ariza c31092ab 2018-12-05T17:04:55 sanitize variationStore in CFF2 against its size
Michiharu Ariza 6dcfda92 2018-12-05T15:07:46 sanitize CFF1 & CFF2 global subrs
Michiharu Ariza 6ce8d10b 2018-12-04T10:39:17 add unlikely to error handling
Michiharu Ariza 0b952e60 2018-12-04T10:22:35 more leak fixes
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 0dfa584c 2018-11-12T08:47:07 changed Adobe company name
Michiharu Ariza ae8fd0db 2018-11-07T09:16:12 clear stack after vsindex op
Michiharu Ariza 2840a104 2018-11-01T16:18:13 tweaks to build with new merge
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 36c2c374 2018-10-23T15:11:09 removed unused multi_val from DictVal
Michiharu Ariza 7d99a6ce 2018-10-12T02:16:07 overhauled error handling in CFF interpreter minimized "if (error) return false" idiom
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 ae7f0e83 2018-09-24T22:49:44 fixed memory leaks in CFF1 & CFF2 accelerators, VORG subsetter
Michiharu Ariza 98b94f8b 2018-09-17T13:56:39 fix static_assert failure in OffsetTo<TopDict>
Michiharu Ariza 1234a813 2018-09-13T10:55:56 add head table to CFF/CFF2
Michiharu Ariza 1666b89e 2018-09-10T16:00:20 subset CFF1 String Index Repurposed FDMap as Remap then subclassed for remapping SIDs misc code cleanup
Michiharu Ariza aca73c9d 2018-09-06T17:28:15 subset CFF1 Encoding & Charset fixed misc Charset bugs added source file hb-ot-cff1.table.cc renamed things for clarity & consistency
Michiharu Ariza 5ea03d29 2018-09-04T11:29:15 fix build by untemplatizing DictOpSet & DictVal as they aren't instantiated with BlendArg (yet)
Michiharu Ariza f2d299b0 2018-09-04T10:25:21 Drop hints from CFF2 charstrings Templatized ArgStack so it may store the default value along with blend deltas as BlendArg while parsing blend operator arguments in CFF2 charstring Added get_region_count() method to VarRegionList & VariationStore
Michiharu Ariza fcf17788 2018-08-31T16:28:47 templatized ArgStack as a prep to store blends
Michiharu Ariza 968168bf 2018-08-31T13:28:16 drop hints from CFF1 charstrings renamed confusing Stack.size to Stack.count
Michiharu Ariza 8af9690a 2018-08-29T13:26:17 Merge branch 'master' into cff-subset Renamed cff "private" source/headers without the suffix
Michiharu Ariza cef75ea4 2018-08-17T13:13:18 Added CFF2 Subr nullifier along with CFF2 charstring interpreter factored out common code between CFF1 & CFF2 to CSInterpreter moved fetch_op from Interpreter to InterpEnv misc code clean up & bug fixes
Michiharu Ariza f57d6bcb 2018-08-16T08:03:46 renamed CFF::Index to CFF::CFFIndex to avoid confusion with OT::Index
Michiharu Ariza 633ce88d 2018-08-15T12:00:19 CFF Subrs subsetting Unreferenced subroutines are nullified (not removed) in a subset font Separate Interpreter struct from hb-ot-cff-common-private.hh in a set of four header files, augmented for CharString (CS): hb-cff-interp-common-private.hh hb-cff-interp-dict-common-private.hh hb-cff-interp-cs-common-private.hh hb-cff-interp-cs.hh Interpreter runtime is separated off as a new struct InterpEnv sub-classed differently for Dict and CharString (CS)
Michiharu Ariza 64c54122 2018-08-10T11:07:07 Added CFF support Added sources hb-ot-cff-table.hh, hb-subset-cff.cc & hh Templatized Index because CFF uses 16-bit count while CFF2 uses 32-bit Misc code cleanup & bug fixes
Michiharu Ariza 5561b818 2018-08-06T10:04:53 subset FDSelect and FDArray Added a set of sources hb-subset-cff-common-private.cc & .hh for FDSelect subseting code. Added FDSelect format 4 (CFF2 only) support. Shared its implementation with format 3 as a template.
Michiharu Ariza cc3f4e00 2018-08-03T15:00:37 silence gcc
Michiharu Ariza 00970dd2 2018-08-03T14:35:09 Removed parsed hint fields from CFF2PrivateDictValues Instead moved & stored uniformly in values vector (renamed from opstrs) This should be fine as we aren't likely going to use them as hints after all Templatized DictValues whether to parse them out For subsetter, they aren't parsed
Michiharu Ariza 76f7397c 2018-08-02T16:28:10 templatized CFF2 accelerator for lean Private dict interpretting for subset also fixed local subrs serialization
Michiharu Ariza e2fd49e4 2018-08-02T11:39:22 Merge branch 'master' into cff-subset
Michiharu Ariza 693ae804 2018-08-02T11:22:42 more silencing fixes
Michiharu Ariza 58279c3d 2018-08-02T10:18:01 silence Codacy
Michiharu Ariza 19ce0b24 2018-08-01T17:34:59 removed unused field OpStr::update
Michiharu Ariza 16f4dc9b 2018-08-01T16:06:52 fixed CFF2VariationStore::serialize also get_size
Michiharu Ariza b2ff582c 2018-08-01T11:30:38 Implemented hb_subset_cff2 Added serialize functions to CFF2 structs Fixed issues & bugs & code cleanup Now subsetting CFF2 table outputs something
Michiharu Ariza 9c4cadae 2018-07-30T14:28:40 Added sanitize functions & calls Added sanitize functions to FDSelect Added satnitize calls for FDSelect, VariationStore, FDArray, TopDict
Michiharu Ariza 3a61c3e9 2018-07-18T14:17:52 first push of CFF/CFF2 work Index, Dict structs hooked up to hb-subset (takes CFF2, outputs empty CFF2)