Skip to content

capi: support batched nominal glyph callbacks - #509

Merged
behdad merged 9 commits into
mainfrom
capi/skia-nominal-glyphs
Oct 8, 2026
Merged

behdad merged 9 commits into
mainfrom
capi/skia-nominal-glyphs

Conversation

@behdad

@behdad behdad commented Oct 7, 2026

Copy link
Copy Markdown
Member

Skia installs hb_font_funcs_set_nominal_glyphs_func when the HarfBuzz version enables batched mapping. Add its HarfRust counterpart, hr_font_get_nominal_glyphs, and source aliases; use the batch callback during shaping as well as public queries.

Preserve byte strides, zero strides, partial results, scalar/batch fallback, and subfont precedence. A child's scalar callback takes precedence over a parent's batch callback.

Validation: 134 C API tests pass and Clippy passes with warnings denied. Regression tests exercise strided and partial batches, scalar fallback, zero-length calls, shaping through the batch callback, and parent/child precedence.

Stacked on #508; part of #507.

behdad added 5 commits October 7, 2026 15:57
Support Skia face setup and callback-backed table enumeration. Keep collection selection separate from mutable face index metadata.

Assisted-by: OpenAI Codex
Map strided batches in public queries and shaping, with scalar/batch fallback and callback precedence through subfonts.

Assisted-by: OpenAI Codex
Base automatically changed from capi/skia-face-unicode to main October 8, 2026 04:45
behdad added 3 commits October 7, 2026 22:46
)

* Format face regression tests

* Format batch regression tests

* capi: report HarfBuzz compatibility version and split OpenType aliases

Keep the package version unchanged while making hb_version and HB_VERSION aliases report the matched shaping release. Add hr-hb-ot.h and generate portable include guards.

Assisted-by: OpenAI Codex
…minal-glyphs

# Conflicts:
#	harfrust_capi/src/lib.rs
@behdad
behdad merged commit 549c33e into main Oct 8, 2026
3 checks passed
@behdad
behdad deleted the capi/skia-nominal-glyphs branch October 8, 2026 04:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants