Skip to content

[skera] Support identity CFF charsets - #2285

Closed
behdad wants to merge 16 commits into
skera-iup-optimizationfrom
skera-cff-identity-charset
Closed

behdad wants to merge 16 commits into
skera-iup-optimizationfrom
skera-cff-identity-charset

Conversation

@behdad

@behdad behdad commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Add SUBSET_FLAGS_CFF_IDENTITY_CHARSET and --cff-identity-charset. CID-keyed CFF subsets emit CIDs equal to their output glyph IDs, following HarfBuzz's flag semantics, including retained-GID holes.

The focused integration test checks CIDs, charstrings, font-dictionary selection, mappings, and metrics for renumbered and retained IDs; name-keyed CFF and CFF2 keep their existing output. Six fresh HB comparisons have no outline or width differences. Clippy, formatting, and the exact CI typo check pass.

Readers use read-fonts directly. write-fonts handles font assembly and owned table rebuilding; Skera retains its direct serializers and repacker. There is no separate generated Skera table tree.

@behdad
behdad added this pull request to stack #2267 October 10, 2026 06:29
@behdad
behdad force-pushed the skera-cff-identity-charset branch from 948f51f to 286c0da Compare October 10, 2026 18:08
@behdad
behdad requested a review from qxliu76 October 10, 2026 18:10
@behdad
behdad force-pushed the skera-cff-identity-charset branch from 286c0da to 376374b Compare October 12, 2026 03:19
@behdad
behdad removed this pull request from stack #2267 October 12, 2026 03:28
@behdad
behdad added this pull request to stack #2335 October 12, 2026 03:29
@behdad
behdad force-pushed the skera-cff-identity-charset branch from 376374b to 63cc1f2 Compare October 12, 2026 20:41
@behdad
behdad force-pushed the skera-cff-identity-charset branch 2 times, most recently from b00e32c to aa4f61e Compare October 12, 2026 22:04
@behdad
behdad force-pushed the skera-cff-identity-charset branch from aa4f61e to ebdf70c Compare October 14, 2026 23:11
behdad added 15 commits October 15, 2026 14:52
Propagate reviewed fixes and repaired ancestry through #2285.

Assisted-by: OpenAI Codex
This tree is unchanged; the replacement evaluator already handles missing
variation rows. Preserve the repaired parent ancestry.

Assisted-by: OpenAI Codex
Preserve reviewed parent ancestry and each PR's existing feature changes.

Assisted-by: OpenAI Codex
Preserve the independently validated TrueType changes and all feature code.

Assisted-by: OpenAI Codex
Keep empty record counts and allocation bounds at each PR boundary.

Assisted-by: OpenAI Codex
Move the existing #2338 correction into the width-reduction PR.

Assisted-by: OpenAI Codex
Reject unsupported versions and oversized arrays before ownership.
Keep current HarfBuzz references with complete feature parameters.

Assisted-by: OpenAI Codex
Preserve zero float32 products and reject subnormal condition pinning.

Assisted-by: OpenAI Codex
Bound pairwise work after deduplication, avoid temporary pair vectors,
and keep the corrected HarfBuzz column order at introduction.

Assisted-by: OpenAI Codex
@behdad

behdad commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by the rebuilt, consolidated instancing stack in #2416–#2423. MATH and name-table overrides remain separately covered by #2415 and #2411.

@behdad behdad closed this Oct 28, 2026
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.

1 participant