src/hb-ot-shape-fallback.cc


Log

Author Commit Date CI Message
Behdad Esfahbod 91fd40ac 2025-04-01T03:57:47 [shape] Skip hidden / ignorables during fallback mark positioning Fixes https://github.com/harfbuzz/harfbuzz/issues/5232
Behdad Esfahbod b47b3b99 2022-01-29T10:24:38 [fallback-kern] Move buffer message to correct position
Behdad Esfahbod 374a6f18 2022-01-22T11:29:00 [fallback-shape] Add buffer trace log
Behdad Esfahbod 06ee4021 2021-12-21T14:14:09 Use invisible-glyph for spaces if font has no ASCII space Fixes https://github.com/harfbuzz/harfbuzz/issues/3340 Should add tests ideally.
Ben Denckla 668acff1 2021-04-12T14:25:19 similarly improve comments on Hebrew ccc 18 & 19 Should have committed this along with commit 9658435a25c2ba82 but forgot.
Laurenz 3fcf466b 2020-10-16T23:03:01 [hb-shape-fallback] Use signed int for correction
Evgeniy Reizner 34ed8e72 2019-12-13T07:25:34 Prefer _hb_glyph_info_is_unicode_mark where possible.
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
Behdad Esfahbod 7aad5365 2019-06-26T13:21:03 [config] Add HB_NO_OT_SHAPE / HB_NO_OT Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod fca27860 2019-05-11T00:37:01 [config] Make HB_DISABLE_DEPRECATED actually compile Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 227d85e1 2019-05-10T23:15:58 Minor
Behdad Esfahbod 414c5de2 2019-04-12T10:12:11 Add HB_NO_OT_SHAPE_FALLBACK Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 3ecda710 2019-01-24T12:08:23 Adjust mark offsets when zeroing from fallback mark positioning code Adjust tests. Fixes https://github.com/harfbuzz/harfbuzz/issues/1532
Behdad Esfahbod cff4c608 2018-11-16T15:04:41 Fix vertical fallback space sign Ouch! Follow-up to cf203af8a33591c163b63dbdf0fd341bc4606190 Fixes https://github.com/harfbuzz/harfbuzz/issues/1343
Behdad Esfahbod 0c3b061a 2018-11-07T13:58:41 [kern] Apply erlier, where GPOS/kerx are applied
Behdad Esfahbod c038f5be 2018-11-07T13:35:06 [fallback] Minor
Behdad Esfahbod d0f8f4c2 2018-11-07T10:25:25 [kern] Move kern machine to hb-kern.hh
Behdad Esfahbod cf203af8 2018-10-31T18:21:48 Implement space fallback in vertical direction Fixes https://github.com/harfbuzz/harfbuzz/issues/1343
Behdad Esfahbod 39bd07ae 2018-10-26T21:01:11 Fix bunch of unused parameter warnings Show up with gcc -O0. There's a few more but those are functions that need to be filled in. Maybe this is a lost battle...
Behdad Esfahbod 661340c4 2018-10-16T13:24:29 [kern] Scale kern pairs before applying Fixes https://github.com/harfbuzz/harfbuzz/issues/1255 Fixes https://github.com/harfbuzz/harfbuzz/issues/1252
Behdad Esfahbod 8d00c39b 2018-10-10T10:18:39 [kern] Minor
Behdad Esfahbod 754cf440 2018-10-10T10:04:05 Minor
Behdad Esfahbod e4f27f36 2018-10-09T08:20:10 Try fixing older bots
Behdad Esfahbod a5195881 2018-10-08T23:57:45 Apply TrueType/OpenType kern table when GPOS kern feature is not available Fixes https://github.com/harfbuzz/harfbuzz/issues/250
Behdad Esfahbod 09ad2613 2018-10-08T23:30:24 Separate fallback kern vs mark positioning
Behdad Esfahbod 3c23ff9b 2018-10-08T23:26:26 [kern] Add kerning driver to TT kern table
Behdad Esfahbod 683c3a95 2018-10-08T23:09:48 [kern] Abstract away kerning machine
Behdad Esfahbod 1d1734e9 2018-10-02T13:04:05 Shuffle code around
Behdad Esfahbod 5c65ed80 2018-09-30T17:48:55 Fix bug introduced in 9b0b40b3c1ac8155c80ed5dc976228f4d3ec7e1f Also discovered by msan bot.
Behdad Esfahbod 9b0b40b3 2018-09-28T11:16:18 Fix fallback kerning to check for current glyph's mask
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.
Ebrahim Byagowi f24b0b97 2018-04-12T13:40:45 Update the links and revive the dead ones
Behdad Esfahbod c1ab95dd 2018-02-08T17:22:07 Fix overflow in space fallback shaping Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=657466
Behdad Esfahbod b220b5a4 2018-02-08T17:14:52 Avoid undefined-behavior in fallback mark positioning Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5584
Behdad Esfahbod fd034490 2018-01-17T16:46:51 Rename hb_apply_context_t to hb_ot_apply_context_t
Behdad Esfahbod 5f94b4cc 2018-01-10T02:35:59 [kern] Mark unsafe-to-break
Behdad Esfahbod 8d553405 2017-11-20T19:43:22 Fix fallback positioning of double diacritic marks Fixes https://bugzilla.gnome.org/show_bug.cgi?id=787284
Unknown 97145df2 2017-11-03T09:05:00 Trivial typos Found using `codespell -i 3 -w -I '../harf-whitelist.txt'` whereas the whitelist contents were: ``` beng iff pres ot te teh ```
Behdad Esfahbod a7c4972c 2017-08-10T20:16:15 [unsafe-to-break] Flag during fallback positioning
Behdad Esfahbod 8b5bc141 2016-02-24T19:05:23 Add get_nominal_glyph() and get_variation_glyph() instead of get_glyph() New API: - hb_font_get_nominal_glyph_func_t - hb_font_get_variation_glyph_func_t - hb_font_funcs_set_nominal_glyph_func() - hb_font_funcs_set_variation_glyph_func() - hb_font_get_nominal_glyph() - hb_font_get_variation_glyph() Deprecated API: - hb_font_get_glyph_func_t - hb_font_funcs_set_glyph_func() Clients that implement their own font-funcs are encouraged to replace their get_glyph() implementation with a get_nominal_glyph() and get_variation_glyph() pair. The variation version can assume that variation_selector argument is not zero.
Behdad Esfahbod 49ef6309 2015-11-04T17:27:07 Adjust the width of various spaces if font does not cover them See discussion here: https://github.com/behdad/harfbuzz/commit/81ef4f407d9c7bd98cf62cef951dc538b13442eb There's no way to disable this fallback, but I don't think it would be needed. Let's hope for the best! Fixes https://github.com/behdad/harfbuzz/issues/153
Behdad Esfahbod 305d2fbf 2015-10-21T11:04:28 Add HB_FALLTHROUGH Borrowed from https://bugzilla.mozilla.org/show_bug.cgi?id=1215411
jfkthame 9099e48e 2015-08-07T17:51:28 Don't rely on .cluster field in fallback_position Fixes tests/cluster. Fixes https://github.com/behdad/harfbuzz/pull/123
Behdad Esfahbod 365576d2 2015-01-29T13:59:42 [layout] Allocate iters in the context Can be further optimized, but I think I didn't break anything. Saves another 3% off Roboto shaping.
Behdad Esfahbod 514564f5 2015-01-29T13:48:48 [layout] Move skippy_iter setup from constructor into init()
Behdad Esfahbod b051be54 2015-01-29T13:40:39 [lookup] Add skippy_iter.reset() Towards reducing the cost of initializing skippy_iter()
Behdad Esfahbod 69626698 2015-01-29T13:08:41 [layout] Merge forward and backward iterators
Behdad Esfahbod 8f3eebf7 2014-08-02T17:18:46 Make sure gsubgpos buffer vars are available during fallback_position Add buffer var allocation asserts to a few key places.
Behdad Esfahbod 7cd33f23 2014-07-17T14:22:11 Micro optimization
Behdad Esfahbod 7627100f 2014-07-11T14:54:42 Mark unsigned integer literals with the u suffix Simplifies hb_in_range() calls as the type can be inferred. The rest is obsessiveness, I admit.
Behdad Esfahbod 5497a8a2 2013-12-22T20:48:53 Cache various masks on the shape plan
Behdad Esfahbod 02f90966 2013-12-22T19:35:27 Minor correction to kern mask checking
Behdad Esfahbod 6b03e3c7 2013-10-27T21:04:55 Optimize fallback kerning Patch from Jonathan Kew. "These changes seem to yield a small but just-about-measurable improvement with old fonts that lack GPOS kerning."
Behdad Esfahbod 8177da29 2013-10-18T15:50:29 Minor
Behdad Esfahbod dba95802 2013-10-18T15:57:36 [otfallback] Never fallback-position a below-mark upwards Test with WinXP times.ttf and U+05D9,U+05B5.
Behdad Esfahbod 0193649c 2013-10-18T16:08:53 [otfallback] Don't shift down above-marks too much This seems to generate much better, almost-perfect, positioning for Arabic as well as Latin above marks.
Behdad Esfahbod 3ddf892b 2013-10-18T00:02:43 [otlayout] Renaming
Behdad Esfahbod bac1dd6a 2013-05-02T18:52:24 [OTLayout] Refactor a bit more
Behdad Esfahbod a8cf7b43 2013-03-19T05:53:26 [Indic] Futher adjust ZWJ handling in Indic-like shapers After the Ngapi hackfest work, we were assuming that fonts won't use presentation features to choose specific forms (eg. conjuncts). As such, we were using auto-joiner behavior for such features. It proved to be troublesome as many fonts used presentation forms ('pres') for example to form conjuncts, which need to be disabled when a ZWJ is inserted. Two examples: U+0D2F,U+200D,U+0D4D,U+0D2F with kartika.ttf U+0995,U+09CD,U+200D,U+09B7 with vrinda.ttf What we do now is to never do magic to ZWJ during GSUB's main input match for Indic-style shapers. Note that backtrack/lookahead are still matched liberally, as is GPOS. This seems to be an acceptable compromise. As to the bug that initially started this work, that one needs to be fixed differently: Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not provide same results as Windows8 https://bugs.freedesktop.org/show_bug.cgi?id=58714 New numbers: BENGALI: 353689 out of 354188 tests passed. 499 failed (0.140886%) DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) GURMUKHI: 60706 out of 60747 tests passed. 41 failed (0.067493%) KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) MALAYALAM: 1048102 out of 1048334 tests passed. 232 failed (0.0221304%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
Behdad Esfahbod d46606e1 2013-02-21T15:39:57 Port TrueType-kerning to use skippy iterator It skips joiners and default ignorables now. Skips marks too, but only if there is proper GDEF classes for marks.
Behdad Esfahbod ba87b8fc 2013-02-21T15:23:39 Move code around
Behdad Esfahbod 0beb66e3 2012-12-05T18:46:04 Fix warnings
Behdad Esfahbod 7e99e4f0 2012-11-14T14:09:46 Reposition Lao marks Lao marks are center-aligned, unlike Thai ones.
Behdad Esfahbod c26a52fb 2012-11-04T16:48:45 Minor
Behdad Esfahbod f6791716 2012-09-06T17:22:31 [OT] Do per-ligature-component fallback mark positioning With this in place, you can remove GDEF/GSUB/GPOS tables from Arabic fonts and still get per-component marks positioned on oh-yeah-fallback-formed LAM-ALEF ligatures with marks in between the LAM and ALEF. Now *that*'s pretty cool, if a bit anachronistic...
Behdad Esfahbod 525c6855 2012-09-06T16:02:07 [OT] Make fallback mark positioning more robust ...with clusters spanning multiple base characters.
Behdad Esfahbod 9433c218 2012-09-06T14:27:15 [OT] Simplify fallback positioning condition
Behdad Esfahbod 028a1706 2012-09-06T14:25:48 Refactor common macro
Behdad Esfahbod 1d581ec3 2012-09-01T20:06:26 [OT] Fallback-position ccc=0 Thai / Lao marks Not perfect, but so is fallback positioning in 2012...
Behdad Esfahbod 3992b5ec 2012-09-01T19:20:41 Move code around
Behdad Esfahbod 5a7f1876 2012-08-30T22:53:29 [OT] Better fallback-position Thai / Lao ccc!=0 marks
Behdad Esfahbod 667218a5 2012-08-27T17:00:44 Minor
Behdad Esfahbod 30dd6225 2012-08-27T16:54:34 Only fallback-position glyphs if we have the ccc Previously, ccc=0 Thai / Lao marks were being mispositioned. Don't touch them.
Behdad Esfahbod e1ba6281 2012-08-27T16:28:05 Center unknown marks horizontally
Behdad Esfahbod daf13afb 2012-08-10T16:38:44 [OT] Implement fallback mark positioning for "double" combining marks
Behdad Esfahbod d3453131 2012-08-10T16:34:04 [OT] Fix fallback mark positioning with left-to-right text Ouch!
Behdad Esfahbod 56c9e7c0 2012-08-09T21:12:30 Fill out combining class resetting for fallback shaping Thai/Lao/Tibetan
Behdad Esfahbod 4c8ac4f4 2012-08-08T17:44:19 Misc minor fixes
Behdad Esfahbod 9c929abd 2012-08-08T14:33:37 Minor renaming