Commit graph

18609 commits

Author SHA1 Message Date
Behdad Esfahbod
089a9961ad [README] Expand on API/ABI guarantee 2025-04-04 12:30:13 -06:00
Khaled Hosny
a55305038c [coretext] Fix -Wformat warning
Some checks failed
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1s
../src/hb-coretext.cc:202:62: warning: format specifies type 'int' but the argument has type 'unsigned int' [-Wformat]
  202 |     DEBUG_MSG (CORETEXT, blob, "TTC index %d not supported", ttc_index);
      |                                           ~~                 ^~~~~~~~~
      |                                           %u

../src/hb-coretext.cc:417:65: warning: format specifies type 'int' but the argument has type 'unsigned int' [-Wformat]
  417 |     DEBUG_MSG (CORETEXT, nullptr, "TTC index %d not supported", ttc_index);
      |                                              ~~                 ^~~~~~~~~
      |                                              %u
2025-04-04 13:27:31 +02:00
Behdad Esfahbod
8994e91487
Merge pull request #5241 from harfbuzz/font-gdef-varstore
Some checks failed
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1s
[shape] Use font-data for GDEF varStore cache
2025-04-03 22:50:49 -06:00
Behdad Esfahbod
d515630f6b [shape-font] Simplify logic 2025-04-03 22:31:13 -06:00
Behdad Esfahbod
d30d7f6b2b [ItemVariationStore] Use atomic int for cache 2025-04-03 22:25:34 -06:00
Behdad Esfahbod
9cae040bb4 [ItemVariationStore] Make cache atomic floats
Doesn't work with intrinsic atomic implementations. Disabled that.
Going through the C++11 atomics path now.

Will fix in next commit.
2025-04-03 22:18:14 -06:00
Behdad Esfahbod
810fbedf27 [shape] Use font-data for GDEF varStore cache
Last remaining alloc during shaping is gone!

Fixes https://github.com/harfbuzz/harfbuzz/issues/5237
2025-04-03 22:13:10 -06:00
Behdad Esfahbod
6cc9c01aaa
Merge pull request #5242 from harfbuzz/c++-atomics
Do our C++11 atomics build anywhere??
2025-04-03 22:12:26 -06:00
Behdad Esfahbod
e10d647a73 [atomic] Re-enable intrinsics implementation 2025-04-03 22:01:37 -06:00
Behdad Esfahbod
e404cf0860 [atomic] Fix C++11 implementation
Surprised no one has been using it.
2025-04-03 21:57:15 -06:00
Behdad Esfahbod
e480d9de96 Do our C++11 atomics build anywhere?? 2025-04-03 21:44:23 -06:00
Behdad Esfahbod
60fc8b4cbc [README] Add Python 2025-04-03 16:18:38 -06:00
Behdad Esfahbod
062c3b4d80 [README] Remove stale text 2025-04-03 16:16:57 -06:00
Behdad Esfahbod
2152ff779c [README] Link some developer documents 2025-04-03 16:15:00 -06:00
Behdad Esfahbod
18ab0f5522 [font] Fix serial_coords
Some checks failed
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 2s
2025-04-03 04:04:40 -06:00
Behdad Esfahbod
c6c8dcdeca
Merge pull request #5239 from harfbuzz/alloc-free-var-shaping
Alloc free var shaping
2025-04-03 03:18:53 -06:00
Behdad Esfahbod
6f5b8d59c7 [ot-font] Streamline advance cache management 2025-04-03 02:57:48 -06:00
Behdad Esfahbod
7da049ed42 [varStore] Add clear_cache() 2025-04-02 15:22:13 -06:00
Behdad Esfahbod
da0c459dd4 [ot-font] Use helpers to acquire/release varStore cache 2025-04-02 15:22:13 -06:00
Behdad Esfahbod
37989fb4cd [ot-font] Adjust cache creation criteria for v_advances
Some checks failed
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1s
2025-04-02 15:03:07 -06:00
Behdad Esfahbod
d3e4977c70 [gvar] Comment
Some checks failed
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1s
2025-04-02 14:04:16 -06:00
Behdad Esfahbod
ef8c25ad9f [ot-font] Make advance-cache invalidation threadsafe
Some checks failed
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1s
Hopefully.
2025-04-02 04:00:03 -06:00
Behdad Esfahbod
bbf0c6e781 [font] Bump coords serial if face changed
Such that ot-font clears its advance cache
2025-04-02 02:11:25 -06:00
Behdad Esfahbod
321c14c920
Merge pull request #5236 from harfbuzz/cmap-cache
Some checks failed
arm / arm-none-eabi (push) Waiting to run
fontations / build (push) Waiting to run
configs-ci / build (push) Waiting to run
linux-ci / build (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 2s
[cmap] Move cache from face user-data to cmap accelerator
2025-04-01 21:39:00 -06:00
Behdad Esfahbod
7f5fafec0d [GDEF] Simplify cache declaration 2025-04-01 21:35:28 -06:00
Behdad Esfahbod
8864c264b9 [cmap] Fix initialization 2025-04-01 21:22:16 -06:00
Behdad Esfahbod
3d0816c7c4 [cache] Simplify cache declarations 2025-04-01 21:18:29 -06:00
Behdad Esfahbod
591f00a281 [cmap] Move cache from face to cmap accelerator
No need to use user-data for it.

Fixes https://github.com/harfbuzz/harfbuzz/issues/5235
2025-04-01 21:09:06 -06:00
Behdad Esfahbod
7ebe6b48b6 [cmap] Whitespace 2025-04-01 20:46:55 -06:00
Behdad Esfahbod
4d5348d660 [set-digest] Comments 2025-04-01 18:12:56 -06:00
Behdad Esfahbod
bed2d3dd2b [cache] Add assertion for cache size
Expand cmap cache since free.
2025-04-01 17:52:57 -06:00
Behdad Esfahbod
89ab5f2b21 [cache] Comments 2025-04-01 17:48:08 -06:00
Behdad Esfahbod
48e7e5a008 [cache] Document 2025-04-01 17:43:35 -06:00
Behdad Esfahbod
9f83bbbe64
Merge pull request #5233 from harfbuzz/aat-deleted-glyph-marks
Some checks failed
Scorecard supply-chain security / Scorecard analysis (push) Failing after 2s
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
Fix AAT deleted glyph marks interaction with fallback mark positioning
2025-04-01 04:15:24 -06:00
Behdad Esfahbod
91fd40ac7c [shape] Skip hidden / ignorables during fallback mark positioning
Fixes https://github.com/harfbuzz/harfbuzz/issues/5232
2025-04-01 04:03:41 -06:00
Behdad Esfahbod
ca66c64655 [aat] Better handle deleted-glyphs
1. Set their GDEF property. Probably irrelevant to morx shaping.
2. Add them to buffer contents, since that can trigger a state
machine start action too.
2025-04-01 03:25:41 -06:00
Garret Rieger
a1e587b75a [subset] Add hb_subset_cff_get_charstrings_index and hb_subset_cff2_get_charstrings_index.
Some checks failed
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1s
These methods allow retrieving the entire charstrings index structure from a CFF or CFF2 table.
2025-03-31 16:28:28 -06:00
Behdad Esfahbod
a5b00faaf8 Fix build with HB_NO_DRAW 2025-03-31 14:29:16 -06:00
Behdad Esfahbod
d53cbeee41 [font] Fix warnings 2025-03-31 14:29:16 -06:00
dependabot[bot]
7c368dabae Bump setuptools from 77.0.3 to 78.1.0 in /.ci
Bumps [setuptools](https://github.com/pypa/setuptools) from 77.0.3 to 78.1.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/v77.0.3...v78.1.0)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 14:23:31 -06:00
dependabot[bot]
674ce63021 Bump github/codeql-action from 3.28.12 to 3.28.13
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.12 to 3.28.13.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](5f8171a638...1b549b9259)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 14:23:19 -06:00
dependabot[bot]
4f5b31b7ea Bump actions/setup-python from 5.4.0 to 5.5.0
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](42375524e2...8d9ed9ac5c)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 14:23:07 -06:00
Behdad Esfahbod
4cf4099f07 [ot/ft] Round glyph extents instead of floor/ceil
Some checks failed
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1s
1. The floor/ceil was being applied in the wrong order for y direction.
2. If the scale is negative, the floor/ceil should be reversed.

Just round them instead. That's what coretext / directwrite / fontations
font-funcs do.
2025-03-30 22:59:54 -06:00
Behdad Esfahbod
4954edb2b1 [test/vertical] Add more tests
Some checks failed
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1s
arm / arm-none-eabi (push) Has been cancelled
configs-ci / build (push) Has been cancelled
fontations / build (push) Has been cancelled
linux-ci / build (push) Has been cancelled
macos-ci / build (push) Has been cancelled
msys2 / CLANG64 (push) Has been cancelled
msys2 / MINGW32 (push) Has been cancelled
msys2 / MINGW64 (push) Has been cancelled
msvc / msvc-2019-amd64 (push) Has been cancelled
msvc / msvc-2019-x86 (push) Has been cancelled
2025-03-28 19:19:57 -06:00
Behdad Esfahbod
afa0549dff [fontations] More idiomatic 2025-03-28 18:38:40 -06:00
Behdad Esfahbod
67314b205a [test/vertical] Enable some on fontations 2025-03-28 16:41:41 -06:00
Behdad Esfahbod
c260550ae5 [test/shape] Improve run-tests output on failure 2025-03-28 16:34:12 -06:00
Behdad Esfahbod
18ced8dbb1 [test/vertical] Add more tests 2025-03-28 16:31:46 -06:00
Behdad Esfahbod
17c875c309 [buffer] Minor add a function 2025-03-28 16:26:27 -06:00
Behdad Esfahbod
ea08b04752 [util] Fix --glyphs output with negative numbers 2025-03-28 16:25:58 -06:00