src/OT


Log

Author Commit Date CI Message
Behdad Esfahbod e3cc6183 2022-11-26T13:58:04 [PairPos] Adjust kerning buffer messages
Behdad Esfahbod 6aaa1662 2022-11-24T14:58:42 [Coverage] Comment
Behdad Esfahbod 6f133ccf 2022-11-24T12:59:55 [glyf] Fix build with HB_NO_VERTICAL
Behdad Esfahbod 05aa084e 2022-11-24T12:13:31 [PairPos] Another attempt at fixing unsafe-to-break with ValueFormat2 Fixes https://github.com/harfbuzz/harfbuzz/issues/3888#issuecomment-1326781116 Test: $ hb-shape XBRoya34.ttf ' الأ' --show-flags --script=arab
Garret Rieger 81640fdf 2022-11-23T20:22:36 [subset] fix leaked font in glyf::subset(...)
Behdad Esfahbod 1e8f1ac6 2022-11-23T12:28:29 [subset-glyf] Micro-optimize array access
Behdad Esfahbod 356d135e 2022-11-23T12:20:51 [subset-glyf] Reduce roundf calls Saves 7% on MPLUS1-Variable/6000 benchmark.
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 299ec902 2022-11-22T16:03:02 [glyf] Move instanciation to serialize()
Behdad Esfahbod d8d881f2 2022-11-22T15:24:16 [subset-glyf] Don't create a second glyf accelerator
Behdad Esfahbod 75609300 2022-11-22T15:22:25 [glyf] Add _create_font_for_instancing
Behdad Esfahbod 40634cee 2022-11-22T15:07:16 [glyf] Adjust data types
Behdad Esfahbod ba0d28ea 2022-11-22T15:01:48 [glyf] Fix font error check
Behdad Esfahbod 04c52501 2022-11-22T14:54:55 [glyf] Use a malloc instead of calloc
Behdad Esfahbod 024aa818 2022-11-22T14:51:42 [glyf] Micro-optimize encode_coord
Behdad Esfahbod b6694597 2022-11-22T14:49:01 [glyf] Micro-optimize encode_flag()
Behdad Esfahbod d47cfe79 2022-11-22T14:45:04 [glyf] Minor use operator ++
Behdad Esfahbod 03e6bde7 2022-11-22T14:40:36 [glyf] Minor adjustment to lastflag handling No logic change.
Behdad Esfahbod 0ca9fda8 2022-11-22T14:39:10 [glyf] Remove misplaced comment
Behdad Esfahbod 4afcdf67 2022-11-22T12:56:48 More hb_memcpy
Behdad Esfahbod 58a696d8 2022-11-22T12:56:05 More hb_memset
Behdad Esfahbod 1758ee66 2022-11-22T10:45:49 [glyf] Minor write loop more idiomatically
Behdad Esfahbod b567ce51 2022-11-21T20:08:54 [subset] Don't trim glyf's again if preprocessed Speeds up M1/10000 benchmark by 30%!
Behdad Esfahbod a0bde1e1 2022-11-16T21:27:12 [open-type] Remove (Sorted)ArrayOf.sub_array()
Behdad Esfahbod f2b5db70 2022-11-16T21:22:43 [vector] Remove .sub_array ()
Behdad Esfahbod ea63e95e 2022-11-11T12:45:12 [GPOS.PairPos] Adjust unsafe-to-break for non-zero ValueFormat2 Fixes https://github.com/harfbuzz/harfbuzz/issues/3824
Behdad Esfahbod fc935fb8 2022-11-01T14:39:33 Fix snprintf use https://github.com/harfbuzz/harfbuzz/pull/3495#issuecomment-1299107964
Behdad Esfahbod 02b76393 2022-10-29T11:15:03 [config] Re-enable BORING_EXPANSION Only the non-experimental parts (currently avar2) are enabled by default.
Behdad Esfahbod 477d7172 2022-10-26T13:11:47 [glyf] Limit points in a glyf to 10000 roughly Only enforced when components are being expanded. Fixes https://github.com/harfbuzz/harfbuzz/issues/3838
Behdad Esfahbod 9aad3dba 2022-10-26T13:04:02 [SingleSubst] Fix degenerate-lookup test Part of https://github.com/harfbuzz/harfbuzz/issues/3853
Behdad Esfahbod a756bd19 2022-10-13T17:18:19 [glyf] Use component phantom points after transformation
Behdad Esfahbod 82d19c08 2022-10-13T17:17:03 Revert "[glyf/Composite] Remove phantom points when not needed anymore" This reverts commit 527e63a3bd8487d21e423a8a358eee30672eddb6.
Behdad Esfahbod 527e63a3 2022-10-13T17:13:40 [glyf/Composite] Remove phantom points when not needed anymore
Behdad Esfahbod 294b1c9f 2022-10-13T11:30:02 Use snprintf instead of sprintf
Garret Rieger 8f1bf23c 2022-09-27T22:50:54 [subset] optimize glyf subsetting w/ retain gids. When retain gids is enabled the subset plan may require the output of many empty glyphs. This change optimizes the glyf subsetting code when the number of retained glyphs << number of output glyphs. Unnessecary lookups to the glyph map are reduced by iterating through the glyph map instead of the output glyph set.
Qunxin Liu e94fe2ad 2022-09-20T13:14:26 [instance] minor optimizations to glyf instancing
Qunxin Liu b90ce34a 2022-09-14T11:26:32 [instance] fix for non-empty .notdef glyph metrics update we need pass in source glyph's outline data to calculate boundaries, and then drop the outline data if notdef-outline is specified. Also disable shifting points for instancing in get_points () API
Qunxin Liu 8f3a7017 2022-09-09T15:00:37 [instance] support FeatureVariations table
Behdad Esfahbod 4bf96211 2022-08-31T09:18:18 [optical-bounds] Optimize
Behdad Esfahbod 5d6f1a88 2022-08-31T08:31:24 [layout] Add hb_ot_layout_get_optical_bound()
Qunxin Liu 8f84c58a 2022-08-26T08:24:19 [instance] don't copy phantom points from component No need to consider USE_MY_METRICS for instancing
Qunxin Liu 58dbc001 2022-08-25T11:05:15 [instance] Fix compiling Composite glyph bytes The x/y offset encoded with int8 originally might overflow after deltas are applied. So we cannot just copy and update old values.
Qunxin Liu 8b7e2a13 2022-08-24T14:16:55 [instance] we need to update hmtx/vmtx values even for empty glyphs Update metrics using the 4 phantom points
Qunxin Liu 6de0a6f0 2022-08-03T11:18:00 [instance] update GPOS ValueRecord table
Qunxin Liu 61636d4e 2022-08-02T10:52:31 [instance] update GPOS AnchorFormat3 table
Qunxin Liu b72995ff 2022-08-01T14:48:01 [instance] GDEF table: collect both varidxes and deltas
Behdad Esfahbod 84d33a1e 2022-08-23T13:13:13 [glyf] Fix compiler warning
Qunxin Liu ac0e22fa 2022-07-22T09:37:09 [instance] update glyf/hmtx/vmtx tables
Garret Rieger 5ea3c0be 2022-08-11T22:21:28 [repacker] Implement MarkArray::clone.
Behdad Esfahbod f4f7d691 2022-08-09T22:23:23 Merge pull request #3779 from harfbuzz/split_pair_pos_2 [repacker] Add PairPosFormat2 table splitting in the repacker.
Behdad Esfahbod a4e0fd16 2022-08-05T15:05:51 [MultipleSubst] Rewrite serialize signature as single iterator
Behdad Esfahbod 65d28bc5 2022-08-05T14:56:07 [MultipleSubst] Rewrite serialize() in terms of iterators Unused still, and hence untested
Behdad Esfahbod b57ea3b0 2022-08-05T14:29:27 Revert "[iter] Use && in uses of is_source_of" This reverts commit ccbba667a9bdc096f0053d5e3ee951a8b6298e8a.
Behdad Esfahbod ccbba667 2022-08-05T11:51:51 [iter] Use && in uses of is_source_of
Behdad Esfahbod 8fb7cc1c 2022-08-05T11:49:29 [iter] Use && in is_sink_of uses
Behdad Esfahbod 914542bd 2022-08-03T17:43:50 Whitespace
Garret Rieger 7f4b2037 2022-08-02T18:43:25 [repacker] include size of device tables when determining PairPos2 split points.
Garret Rieger 58fdbd8e 2022-07-30T02:05:15 [repacker] begin adding PairPosFormat2 splitting support.
Behdad Esfahbod 6549aec8 2022-08-01T13:11:14 [SingleSubstFormat1] Help avoid timeouts in closure() some more For https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49712
Garret Rieger f6a242b6 2022-07-27T18:58:41 [repacker] begin adding PairPos splitting support.
Behdad Esfahbod 149b0305 2022-07-29T12:41:30 Fix thinko
Behdad Esfahbod f7677213 2022-07-29T11:57:57 [SingleSubstFormat1] Don't close glyphs in degenerate cases Fixes https://oss-fuzz.com/testcase-detail/5145429829877760
Behdad Esfahbod e51526bf 2022-07-28T09:53:30 [CompositeGlyph] Add HB_NO_BEYOND_64K
Behdad Esfahbod e2cc34e1 2022-07-26T12:31:15 [subset/GPOS] Fix a fuzzer timeout test Fixes https://oss-fuzz.com/testcase-detail/5234369031176192
Behdad Esfahbod 59b05359 2022-07-24T17:14:09 [GSUB/GPOS] Add more buffer messages Behind HB_BUFFER_MESSAGE_MORE. https://github.com/harfbuzz/harfbuzz/pull/3495
Behdad Esfahbod 9eab3ac7 2022-07-21T12:35:19 [CoverageFormat2] Remove hand-written loop While on a fuzzer-found test case (added) that loop was faster, on real fonts, including NotoNastaliq in our benchmark, it was actually slower, which intuitively I would have expected. Still no idea why on that fuzzer case it's faster though. :(
Behdad Esfahbod bbb4db90 2022-07-21T12:34:46 [Coverage/SingleSubst] Move hand-written loop to Coverage
Behdad Esfahbod 7b95783e 2022-07-21T12:18:51 [Coverage] Internal rename
Behdad Esfahbod afa65f29 2022-07-21T12:17:08 [Coverage] Minor type change
Behdad Esfahbod b38587aa 2022-07-21T12:14:06 [Coverage] Internal renames
Behdad Esfahbod 84d38df8 2022-07-21T12:12:04 [Coverage] Minor use range-based loop
Behdad Esfahbod b017b73f 2022-07-21T12:06:55 [Coverage] Minor remove a couple unnecessary as_array()'s
Behdad Esfahbod 9e650b4e 2022-07-21T12:01:52 [Coverage] Speedup intersect_set
Behdad Esfahbod efa38807 2022-07-21T11:52:36 [subset/SingleSubsetFormat1] Use Coverage.intersect_set
Behdad Esfahbod 00dfbbce 2022-07-21T11:39:32 [Coverage] Rename and templatize intersected_coverage_glyphs
Behdad Esfahbod d0eb2737 2022-07-21T11:24:56 [subset/GSUB/GPOS] Use more intersected_coverage_glyphs()
Behdad Esfahbod 450d8346 2022-07-21T11:05:35 [subset/PairPosFormat1] Speed up significantly
Behdad Esfahbod 5d7556e1 2022-07-21T10:42:29 Revert "[subst/SingleSubstFormat1] Rewrite nicer" This reverts commit bababe10724c27b2cbb09bf25e7dcf4aeea07588. The hand-written code is still much faster :(.
Behdad Esfahbod 71ce931e 2022-07-21T10:41:29 [PairPos] Don't compute newFormat It was wrong, because it would be writing wrong values. Test suite doesn't seem to catch any.
Behdad Esfahbod 02ca0254 2022-07-21T10:30:23 [layout] Add large_int to Types
Behdad Esfahbod bababe10 2022-07-21T10:25:27 [subst/SingleSubstFormat1] Rewrite nicer
Behdad Esfahbod cf123e6a 2022-07-21T10:21:57 [Coverage] Add get_population ()
Behdad Esfahbod fa471043 2022-07-20T22:42:18 [subset] Fix previous commit
Behdad Esfahbod c4d2ef90 2022-07-20T22:36:35 [subset] Speed up subsetting of SingleSubstFormat1_3
Behdad Esfahbod d01e6bab 2022-07-20T22:17:33 [subset] Speed up SingleSubstFormat1_3 closure
Behdad Esfahbod aae8c74e 2022-07-20T11:51:09 [>64k:layout:SingleSubstFormat3] Fix masking https://github.com/be-fonts/boring-expansion-spec/issues/31
Behdad Esfahbod 3c137ef0 2022-07-20T11:29:30 [GPOS/CursivePos] Fix unsafe-to-break marking Fixes test.
Behdad Esfahbod 54e9ab4a 2022-07-18T18:57:14 [GPOS/Cursive] Fix breaking of parent-child attachment Mostly fixes https://github.com/harfbuzz/harfbuzz/issues/2469
Behdad Esfahbod 89de8c70 2022-07-18T13:07:29 [CoverageFormat2] Another fix for broken tables Fixes https://oss-fuzz.com/testcase-detail/6005342714068992
Behdad Esfahbod d8574b44 2022-07-17T18:44:27 [CoverageFormat2] Fix iterator to avoid infinite loop on invalid data. Fixes https://oss-fuzz.com/testcase-detail/5304497047470080
Behdad Esfahbod af84680f 2022-07-17T12:00:04 [GSUB] Remove a reinterpret_cast
Garret Rieger d82ace5c 2022-07-13T23:00:01 [reorg] add TODO to RangeRecord.
Garret Rieger c1e280ea 2022-07-13T22:43:38 [reorg] Move Coverage, RangeRecord into new namespace layout.
Behdad Esfahbod a2f07231 2022-07-13T16:02:39 [GPOS] Adjust mark attachment on multiple substitution some more Fixes https://github.com/harfbuzz/harfbuzz/issues/1545
Behdad Esfahbod 7549d447 2022-07-11T21:52:25 [>64k:glyf] Implement composites for >64k Implements https://github.com/be-fonts/boring-expansion-spec/issues/42
Behdad Esfahbod 09de9478 2022-07-11T15:08:22 [>64k:glyf] Hid composite glyphIndex
Behdad Esfahbod cc83b0b8 2022-07-08T12:25:15 [>64k:layout:MarkBasePos/MarkMarkPos/MarkLigPos] Implement format 2 Implements https://github.com/be-fonts/boring-expansion-spec/issues/40 Subset does NOT lower format.
Behdad Esfahbod 4b43070e 2022-07-08T12:22:16 [>64k:layout] Templatize MarkBasePos/MarkMarkPos/MarkLigPos
Behdad Esfahbod f0d6dda5 2022-07-07T16:28:24 [>64k:layout:PairPos] Implement format 3 Implements rest of https://github.com/be-fonts/boring-expansion-spec/issues/38 Subset does NOT lower format.
Behdad Esfahbod 298ee47c 2022-07-07T16:27:49 [>64k:layout] Templatize PairPosFormat1