Skip to content

feat: define deterministic renderer font records - #334

Open
Happypig375 wants to merge 1 commit into
issue-191-precomputed-fontsfrom
issue-327-font-record-schema
Open

feat: define deterministic renderer font records#334
Happypig375 wants to merge 1 commit into
issue-191-precomputed-fontsfrom
issue-327-font-record-schema

Conversation

@Happypig375

Copy link
Copy Markdown
Collaborator

Summary

  • define the versioned little-endian CMR1 renderer-record envelope and deterministic section directory
  • add strict standalone bounded reader/writer validation for schema, endian, offsets, counts, overlap, truncation, reserved bytes, duplicate tags, hashes, and trailing data
  • preserve Prototype deterministic bundled-font artifact formats #319 source identities and emit compact identity-only records for all three bundled faces; full cmap/outline/MATH sections remain scoped to later children
  • generate binary and C# representations from the same logical model and verify checked-in artifacts by immutable temporary regeneration
  • document format compatibility, limits, ordering, AOT/trimming behavior, and artifact roles without changing runtime rendering

Testing

  • FontBlobTests + RendererRecordTests: 9 passed
  • Release test-project build: 0 warnings/errors; actual generated C# compiled
  • legacy CSMF1, compact CMR1, and generated-C# regeneration/verification passed for all three faces
  • corrupt CMR1 reserved-byte copy was rejected; supplied artifact hashes remained unchanged during verify
  • scoped formatting and git diff --check passed
  • independent architecture review approved the compact final design

Stack

This PR is based on issue-191-precomputed-fonts / #325 and implements the first actionable schema child of #320.

Closes #327

@Happypig375 Happypig375 added Type/Enhancement A concrete change to CSharpMath behavior or capability. Area/Rendering Typesetting, measurement, fonts, text layout, and drawing. labels Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area/Rendering Typesetting, measurement, fonts, text layout, and drawing. Type/Enhancement A concrete change to CSharpMath behavior or capability.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant