Skip to content

feat(font): render retained glyphs with writing direction - #1879

Closed
Albaloola wants to merge 2 commits into
boykopovar:mainfrom
Albaloola:contribution/font-retained-glyphs
Closed

Albaloola wants to merge 2 commits into
boykopovar:mainfrom
Albaloola:contribution/font-retained-glyphs

Conversation

@Albaloola

Copy link
Copy Markdown

What

Render generated glyphs through retained FreeType glyph objects so changing or closing the source font does not alter an existing glyph. Support generic, horizontal and vertical rendering with the supplied renderer, clipping, surface layout and frame scale. Add writing-direction attribute readback/update, invalidate layout caches when direction changes, and preserve direction on retained glyphs. Correct the setter output argument to the public pointer ABI.

Thomas73737's #1498 overlaps these exports. This independent implementation adds retained ownership and observable renderer/cache behavior; its commit/code is not imported. Public ABI sources and FreeType glyph-management references are linked in TechnicalDebt.

Tested

Windows x86-64, WinLibs MinGW-w64 GCC 15.2.0, Release. This topic is based on upstream main ce64d8e. Runtime results below come from the integrated checkout; the isolated source checks are described separately. The final integrated Release build and library target passed, with 504/506 CTests passing: only the pre-existing shader_clock and vopc_compare_table GPU failures remain. No new failures were observed.

Three successive fail-before/pass-after regressions exercised the prior throwing exports. Nine focused Font tests passed across all three aliases, using generated TrueType fixtures. Tests cover retained lifetime, exact output/canaries, clipping, pitch, one/four-byte surfaces, fractional placement, scale, vertical metrics, renderer validity, attribute width and cache invalidation. Full build, libs and conventions passed.

Unsupported attribute families, synthetic weight/slant, unsupported bitmap transforms and absent vertical tables reject explicitly. Console placement/error precedence remain unverified. No PS5 hardware, retail title or Linux runtime validation was performed.

Isolated publication-source check: all 17 affected production/test compile configurations pass with this branch's own core headers, excluding neighboring local topics. Conventions, diff checks and source/test registration review also pass. Dependency headers and generated configuration come from the existing pinned build; a new full configure/link/runtime run was not performed for this isolation check.

Checklist

  • Based on current main; isolated source, diff and conventions checks pass (runtime scope above)
  • No overlapping open PR (known overlap disclosed above; do not mark this item checked)
  • One topic per PR; follow-up work is separate
  • No investigation notes or images added to repository source
  • Unsupported paths remain explicit failures; limitations are recorded in TechnicalDebt
  • New third-party dependencies, if any, are pinned submodules built from source
  • Generic behavior, not specific to one title
  • Depends on: none
  • AI-assisted: yes, with OpenAI Codex; the PR author remains responsible for the submitted changes

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 8, 2026
Preserve the topic implementation and tests unchanged. Merge main f145139; resolve only TechnicalDebt.md and restore its UTF-8 text. All unrelated debt bytes match upstream. Source blob comparison, conventions, and diff checks pass. Runtime validation remains the previously documented snapshot.

AI-assisted with OpenAI Codex.
@Albaloola Albaloola closed this Oct 8, 2026
ycbuzi pushed a commit to ycbuzi/AnyPS5 that referenced this pull request Oct 10, 2026
…ebt documentation

Harvested from upstream (closed unmerged); library completion 2827/3229 -> 2831/3229. (changelog conflict: kept both)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011krDVCnnMQPaEFEqCDnKmA
ycbuzi pushed a commit to ycbuzi/AnyPS5 that referenced this pull request Oct 10, 2026
…hnical-debt documentation"

This reverts commit 8f1c4d8, reversing
changes made to 45a6fd5.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs rebase Conflicts with main, rebase needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant