Skip to content

v0.3.2

Choose a tag to compare

@dyike dyike released this 16 Oct 09:03
· 20 commits to main since this release
8c24558

Font and glyph memory

  • Prepare macOS fonts from native metadata and share immutable CoreText sources instead of eagerly parsing a second set of Go font tables.
  • Carry exact native font and glyph identities into rasterization; preserve file/collection identities and Go fallback behavior for unsupported font paths.
  • Render monochrome glyphs through alpha masks and Metal R8 textures. Bound colored/vector glyph caches and release resources when shapers become unreachable.
  • Bound sparse coverage atlas growth and resolve wrapped bidirectional text using CoreText line order.

Targeted cache measurements: CPU glyph page capacity 32 MiB → 8 MiB; a 256-pixel GPU glyph page including mipmaps 352 KiB → 96 KiB. These measurements describe individual resources, not total application memory.

Validation includes full Go tests/vet, native font and bidi checks, pixel comparisons between mask and RGBA rendering, real macOS window updates, cross-platform compilation, and external module archive builds.

Known existing CI issue: the Windows native menu bitmap lifetime test fails in both this version and v0.3.1. The affected Windows menu code is unchanged; Windows amd64/arm64 compilation passes. See baseline CI.

PR: #39