Log

Author Commit Date CI Message
Behdad Esfahbod 38db1fac 2025-04-23T18:02:06 [paint] Change back return type of paint_glyph() to void Add new "_or_fail" variants of draw_glyph and paint_glyph New API: +hb_font_draw_glyph_or_fail_func_t +hb_font_paint_glyph_or_fail_func_t +hb_font_funcs_set_draw_glyph_or_fail_func() +hb_font_funcs_set_paint_glyph_or_fail_func() +hb_font_draw_glyph_or_fail() +hb_font_paint_glyph_or_fail() Deprecated API: -hb_font_draw_glyph_func_t -hb_font_paint_glyph_func_t -hb_font_funcs_set_draw_glyph_func() -hb_font_funcs_set_paint_glyph_func()
Behdad Esfahbod eb226383 2025-04-23T01:20:48 [font] Synthesize glyph extents if needed See code for logic. Fixes https://github.com/harfbuzz/harfbuzz/issues/5273
Behdad Esfahbod e78310bf 2025-04-23T00:58:08 [paint] Change return type to bool, and return false for outline glyphs It was impossible to get synthetic bold/slant correctly with the previous API. This is a minor API break, but one I'm willing to take.
Behdad Esfahbod a23021e1 2025-04-23T00:43:56 [COLRv1] Simplify paint_glyph() Pass a non-synthetic font to the client, so they don't have to worry about it. The only issue left, is that now when paint_glyph() paints an outline glyph (not color glyph), it would be double-slanted. I'm leaning towards removing painting of outline glyphs from the paint API and change the paint API to return a boolean.
Behdad Esfahbod 023e2294 2025-04-22T23:09:47 [cairo] Solely use public API I actually don't know how hb-font.hh is pulled into hb-cairo.cc. I can't figure it out!
Behdad Esfahbod 6f6d6e8c 2025-04-22T23:04:31 [cairo] Remove redundant include
Behdad Esfahbod 5d9cff80 2025-04-22T23:01:28 [font] Move is_synthetic() to .hh
Behdad Esfahbod b9a1cd70 2025-04-22T22:54:34 [cairo] Use hb_font_is_synthetic() to speed up clip_glyph
Behdad Esfahbod bf28ca5f 2025-04-22T22:53:09 [paint] Mention hb_font_is_synthetic()
Behdad Esfahbod 853720ea 2025-04-22T22:51:40 [font] Add hb_font_is_synthetic() New API: +hb_font_is_synthetic()
Behdad Esfahbod 4c0a925e 2025-04-22T22:36:28 [paint] Document clip_glyph vs synthetic shapes hurdle
Behdad Esfahbod 01e9c77e 2025-04-22T21:57:02 [COLR] Fix clip-box Was slanting it. Was wrong with new code.
Behdad Esfahbod 9445778e 2025-04-22T21:33:15 [test-paint] Update expectations for recent slant changes
Behdad Esfahbod c57f49f7 2025-04-22T21:32:35 [ft] Return false from get_extents for COLR glyphs
Behdad Esfahbod fcbe7676 2025-04-22T21:22:31 [fontations] Return false from get_extents for COLR glyphs
Behdad Esfahbod e9ae6cc5 2025-04-22T21:14:50 [cairo] Draw unsynthetic glyphs during COLRv1 Fixes the double-slanting issue of COLRv1 glyphs.
Behdad Esfahbod 395bc276 2025-04-22T21:05:53 [font] Fix draw_glyph default implementation to new scheme
Behdad Esfahbod a69713b5 2025-04-22T21:01:04 [color] Move slanting to font layer COLRv1 is still being double-slanted. Investigating.
Behdad Esfahbod 9dbb84e6 2025-04-22T20:25:44 [font] Don't apply synthetic bold/slant to parent Fixes https://github.com/harfbuzz/harfbuzz/issues/5274
Behdad Esfahbod 1a9e2175 2025-04-22T19:52:21 [font/draw] Move slanting to font layer I moved it to the draw layer in 11.0.0; That was a bad design: font-funcs should NOT be responsible for synthetic bold & slant. This design reverts that and makes the font layer apply it, using a recording. This is a minor API change from 11.0.0 since hb_draw_state_t::slant_xy which was introduced in 11.0.0, is removed now. I believe no client had started using it. It was only relevant to other font-funcs draw implementations.
Behdad Esfahbod 9ef82f89 2025-04-22T19:35:34 [font] Embolden font_v_extents
Behdad Esfahbod 5ebd740e 2025-04-22T19:28:16 [font] Move font_h_extents emboldening to font layer
Behdad Esfahbod 0d871727 2025-04-22T15:40:06 [buffer] Limit the extent of set_flags range We can easily get into O(n^2) otherwise.
JordanTheToaster b0f4979d 2025-04-22T08:42:58 [cmake] Fix missing sources
dependabot[bot] ad36480b 2025-04-21T11:47:35 Bump setuptools from 78.1.0 to 79.0.0 in /.ci Bumps [setuptools](https://github.com/pypa/setuptools) from 78.1.0 to 79.0.0. - [Release notes](https://github.com/pypa/setuptools/releases) - [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst) - [Commits](https://github.com/pypa/setuptools/compare/v78.1.0...v79.0.0) --- updated-dependencies: - dependency-name: setuptools dependency-version: 79.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Khaled Hosny fa791a34 2025-04-20T15:19:18 [ci/msys2] Drop mingw32 build Upstream is dropping it, and mingw-w64-i686-icu package is already gone. https://www.msys2.org/news/#2023-12-13-starting-to-drop-some-32-bit-packages https://github.com/msys2/MINGW-packages/discussions/19326
Behdad Esfahbod 12457498 2025-04-20T05:18:38 [meson] Report Fontations status
Behdad Esfahbod 05362548 2025-04-20T05:06:54 Merge pull request #5294 from harfbuzz/paint-bounds [COLRv1] `paint-bounds`
Behdad Esfahbod c62af2c3 2025-04-20T04:53:33 [paint-unbounded] Minor tweak I like it better this way.
Behdad Esfahbod 6e2806e4 2025-04-20T04:47:58 [paint-bounded] Reduce vector use Keep current drawing's boundedness outside of the vector (common case). Again, no speedup because of the scratch pattern.
Behdad Esfahbod 27b2e16a 2025-04-20T04:34:40 [atomic] Make cmpexch() non-const Was a mistake. Make the affected members mutable instead.
Behdad Esfahbod 7aa3ab93 2025-04-20T04:28:28 [paint-bounded] Remove one vector Doesn't make things faster though because of the scratch pattern.
Behdad Esfahbod 78822b63 2025-04-20T04:23:35 Revert "[COLRv1] Move paint boundedness check to font layer" This reverts commit c9a26fbf47f01fdd55df1a0ccc81111cb07bf108.
Behdad Esfahbod c9a26fbf 2025-04-20T04:22:32 [COLRv1] Move paint boundedness check to font layer This way it will apply to fontations and future implementations as well. But this slows down things apparently, specially if the font does use clipboxes. So I'm going to revert.
Behdad Esfahbod 8aa88aa4 2025-04-20T04:08:41 [COLRv1:ot/ft] Use paint-bounded instead of paint-extents Faster. Note that this also means that if there is no clip-box, we don't compute the bounds and emit an initial clip anymore. That was totally unnecessary and against the COLRv1 rendering algorithm. This makes painting of COLRv1 fonts without clipboxes *much* faster, as previously we were computing bounds using all subglyph outlines. Not anymore. Before: BM_Font/paint_glyph/Nupuram-Color.colrv1.ttf/ot 1.78 ms After: BM_Font/paint_glyph/Nupuram-Color.colrv1.ttf/ot 0.155 ms
Behdad Esfahbod d175e221 2025-04-20T03:29:11 [paint-bounded] Add new code to compute boundedness of paintings This is faster than using paint-extents to just compute boundedness. Unused right now.
Behdad Esfahbod 4a9ac263 2025-04-20T02:12:40 [draw] Move draw_extents form paint-extents to draw
Behdad Esfahbod 4fc84b0e 2025-04-20T00:36:28 [ot-font] Fix order of COLR vs VARC extents COLR can reference VARC, not the other way around.
Behdad Esfahbod 01793d3e 2025-04-20T00:32:44 [fontations] Pop font transform
jfkthame 4e7b178f 2025-04-17T15:05:20 Avoid unannotated-fallthrough in hb-ot-layout-base-table.hh
jfkthame 2602f729 2025-04-17T15:02:59 Avoid unannotated-fallthrough warning in COLR.hh
Khaled Hosny 416e6b69 2025-04-16T20:21:27 11.1.0
Behdad Esfahbod 32b36fa8 2025-04-15T12:14:01 [atexit] Fix extra semicolon Fixes https://github.com/harfbuzz/harfbuzz/issues/5290
Behdad Esfahbod bc15ebde 2025-04-15T12:37:11 [font] Fix abs of int value
Behdad Esfahbod 8f413a53 2025-04-15T10:03:16 [layout] Docs
Behdad Esfahbod 21516f74 2025-04-15T09:58:25 [cmake] Add hb-script-list.h Fixes https://github.com/harfbuzz/harfbuzz/issues/5288
Behdad Esfahbod 7bb3000a 2025-04-13T12:46:52 [font] Allow negative emboldening strength to enlighten
dependabot[bot] 4da8671b 2025-04-14T10:16:54 Bump github/codeql-action from 3.28.14 to 3.28.15 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.14 to 3.28.15. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/fc7e4a0fa01c3cca5fd6a1fddec5c0740c977aa2...45775bd8235c68ba998cffa5171334d58593da47) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 3.28.15 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Khaled Hosny e192a584 2025-04-15T15:52:52 [check-symbols] Ignore another rust symbol Fixes https://github.com/harfbuzz/harfbuzz/issues/5287
robxnano cf7bffb6 2025-04-05T12:42:47 meson: Use full path in HBSOURCES Using the file object directly in a format string is broken and now deprecated.
robxnano 9def626d 2025-04-05T12:37:09 meson: Fix warnings about features in later versions By using the fs.relative_to() function inside version_compare blocks, Meson can suppress warning messages about it being used in a project with a lower minimum version.
robxnano e2a865f0 2025-04-05T12:29:28 meson: Only check for _MSC_FULL_VER once Prevents the log from filling with repeated calls to check the value of the define.
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.
Garret Rieger 5afbd187 2025-04-09T22:48:27 [subset] Split subset plan variations function into separate file. Compile times for hb-subset-plan.cc go from 16s -> 13s.
Behdad Esfahbod e6b5dba3 2025-04-09T16:53:08 [README] Add Subsetter study
Garret Rieger d3ccdcdd 2025-04-09T22:26:59 [subset] Move GDEF subset planning into hb-subset-plan-layout.cc
Garret Rieger b33f2e26 2025-04-09T22:11:12 [subset] Start splitting layout specific subset plan functionality. The aim is to reduce the compiled time of hb-subset-plan.cc which on my machine takes almost 30s to compile.
Behdad Esfahbod ab323515 2025-04-08T22:13:02 [common] Move hb_script_t enum to a separate file Fixes https://github.com/harfbuzz/harfbuzz/issues/5271
Behdad Esfahbod 5f80cc16 2025-04-08T02:11:11 [directwrite] Fix build
Behdad Esfahbod 6b012428 2025-04-08T01:58:10 [mutex] Delete copy constructors
Behdad Esfahbod caa9cf2e 2025-04-08T01:50:51 [atomic] Remove unnecessary macro Had typo in it as well.
Behdad Esfahbod c7f98090 2025-04-07T16:36:42 [GPOS] Short-circuit variations if no axis set
Garret Rieger b1a0a4c2 2025-04-07T18:39:21 In OT::VarData::Serialize don't attempt to serialize an empty set of rows. Protects against incorrectly accessing rows[0] when rows is empty.
dependabot[bot] 6dff699f 2025-04-07T11:40:46 Bump fonttools from 4.56.0 to 4.57.0 in /.ci Bumps [fonttools](https://github.com/fonttools/fonttools) from 4.56.0 to 4.57.0. - [Release notes](https://github.com/fonttools/fonttools/releases) - [Changelog](https://github.com/fonttools/fonttools/blob/main/NEWS.rst) - [Commits](https://github.com/fonttools/fonttools/compare/4.56.0...4.57.0) --- updated-dependencies: - dependency-name: fonttools dependency-version: 4.57.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] 6697cd83 2025-04-07T11:32:00 Bump github/codeql-action from 3.28.13 to 3.28.14 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.13 to 3.28.14. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/1b549b9259bda1cb5ddde3b41741a82a2d15a841...fc7e4a0fa01c3cca5fd6a1fddec5c0740c977aa2) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 3.28.14 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Khaled Hosny 2c4bc832 2025-04-07T04:53:51 [ot-math] Fix build with HB_NO_MATH
Behdad Esfahbod e31721b5 2025-04-06T21:40:43 [test/shape] Write cmdline as test description
Behdad Esfahbod a9e2c8f3 2025-04-06T19:34:18 Merge pull request #5264 from harfbuzz/tap2 Tap2
Behdad Esfahbod a3d626b4 2025-04-06T19:16:43 [test-object] Hopefully last ubsan fix API change: - hb_face_is_immutable() now takes `hb_face_t *` instead of previous `const hb_face_t *`. This should not pose any problem for any clients in our belief.
Behdad Esfahbod b99382e2 2025-04-06T18:53:53 [test-unicode] Try disabling one test under ubsan
Behdad Esfahbod ba4a92c5 2025-04-06T18:48:39 [test-object] Fix ubsan issues
Behdad Esfahbod 8a1ba4d1 2025-04-06T18:12:22 [test-object] See if this helps make ubsan happy
Behdad Esfahbod fb04a306 2025-04-06T17:41:18 [test/api] Fix a few ubsan issues
Behdad Esfahbod b4390115 2025-04-06T17:28:03 [test-draw] Make ubsan happy
Behdad Esfahbod b106a9ef 2025-04-06T16:34:19 [CI] Put back the meson-default sanitizer options
Behdad Esfahbod 59771e56 2025-04-06T16:28:40 [CI] Redirect sanitizer outputs to stderr
Behdad Esfahbod fd9903fc 2025-04-06T16:04:17 [hb-subset] Try to fix leak
Behdad Esfahbod f09c4d6d 2025-04-06T15:54:21 [test/subset] Fix a regular expression
Behdad Esfahbod 1f055939 2025-04-06T15:39:19 [test/subset] Massage more
Behdad Esfahbod d8f00171 2025-04-06T15:33:25 [test/subset] black
Behdad Esfahbod cc065cf2 2025-04-06T15:33:08 [test/subset] Better report passed tests
Behdad Esfahbod c60067c6 2025-04-06T15:25:58 [test/subset] See if this fixes CI
Behdad Esfahbod 8456c33a 2025-04-06T14:33:44 [test/shape] Respect @face-loaders directive
Behdad Esfahbod 1f1cbb64 2025-04-06T14:30:07 Merge pull request #5260 from harfbuzz/tap Use TAP protocol for tests
Behdad Esfahbod aa6a37de 2025-04-06T14:13:18 [test/subset] Port to TAP
Behdad Esfahbod ba309a18 2025-04-06T13:54:47 [test/fuzzing] Port all to TAP
Behdad Esfahbod 58d7ab2d 2025-04-06T13:42:13 [meson] Remove unneeded dependencies
Behdad Esfahbod 328509ef 2025-04-06T13:34:04 [tap] Try to fix cross64 build
Behdad Esfahbod 03f42301 2025-04-06T13:31:17 [mac] Add tests for --face-loader https://github.com/harfbuzz/harfbuzz/issues/5142
Behdad Esfahbod 5a468728 2025-04-06T13:05:43 Add test for https://github.com/harfbuzz/harfbuzz/issues/5232
Khaled Hosny 9718681c 2025-04-06T19:45:10 [meson] Require 0.60.0 Fixes https://github.com/harfbuzz/harfbuzz/issues/5261
Behdad Esfahbod 2b5ae9de 2025-04-06T12:46:43 [meson] Use a glob.py instead of ls / dir
Behdad Esfahbod 155e1e63 2025-04-06T03:49:15 [test/api] Use g_assert_true instead of g_assert The latter terminates the program. The former marks the test as failing.
Behdad Esfahbod f7303942 2025-04-06T03:33:27 [CI] See if this fixes crossbuild 64
Behdad Esfahbod 5efdb884 2025-04-06T03:21:15 [run-tests] Fix remaining bot fails, fingers crossed
Behdad Esfahbod 8132a660 2025-04-06T03:12:38 [shape/run-tests] Don't return non-zero TAP protocol.
Behdad Esfahbod b2179dcf 2025-04-06T02:56:20 [meson.build] Another try
Behdad Esfahbod a777a9c5 2025-04-06T02:47:06 [meson.build] Try fix using of `find`
Behdad Esfahbod e3327777 2025-04-06T02:30:09 [fuzzing/subset] Make TAP protocol
Behdad Esfahbod 740a103b 2025-04-06T02:26:17 [meson] See if this fixes bots