Skip to content

Tags: gogpu/gg

Tags

v0.52.0

Toggle v0.52.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
refactor: compositor architecture migration (ADR-067)

Move compositor ownership from gg to gogpu:
- Remove preserveContent from GPURenderSession (compositor decides LoadOp)
- Delegate MSAA overlay compositing via SurfaceCompositor interface
- Per-frame compositor via GPURenderTarget.Compositor field
- selectBaseLayer uses target.PreserveContent (not frameRendered)
- shouldPreserveSurface checks compositor.ShouldPreserveContent()
- Legacy fallback preserved for standalone gg without gogpu
- Tests updated for new compositor signal path

Enterprise pattern: drawing library receives compositor context per-frame,
same as Chromium PlaybackToCanvas, Flutter ScopedFrame, GTK4 GSK render.

v0.51.0

Toggle v0.51.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
release: v0.51.0 — damage overlay + TT advance cache (#491)

* feat: migrate ggcanvas to DamageReporter API (ADR-065 + ADR-066)

- DamageRectSetter → DamageReporter via RegisterDamageSource('gg')
- damage_debug.go → implements DamageOverlayRenderer with text labels
- Per-source colors, anti-aliased borders, reason detail in labels
- 67 ggcanvas tests passing

Part of: #437

* docs: GOGPU_DEBUG_DAMAGE=1 → =overlay (pre-v1.0 clean cut)

* perf(text): TT advance cache + deps bump + examples update (#490)

- Per-(ppem, glyphID) advance cache in ttHintCacheEntry avoids
  re-running TT bytecode interpreter for advance-only queries.
  60fps→15fps regression from v0.50.13 advanceResolver fixed.
- deps: gpucontext v0.26.0, wgpu v0.31.0, gogpu v0.51.0
- examples: migrate LoadFontFace to text.NewFontSourceFromFile API
- multi_damage_demo: single-path spinner, FPS counter, proper overlay

* fix(lint): remove unused const, fix staticcheck SA4023 in overlay test

v0.50.16

Toggle v0.50.16's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(text): variable font advance + shear aliased rendering (#405) (#489)

* fix(text): variable font advance + shear aliased rendering (#405)

Two fixes for variable font regression reported by @tsl0922:

1. drawGlyphsVariable used TT-hinted phantom advances (integer-rounded)
   for positioning while Face.Advance/MeasureString used HVAR (fractional).
   Now uses HVAR via varOrRawAdvance(), matching FreeType ttgload.c:964-977.
   Also fixed faceGlyphAdvance to use advanceResolver for MultiFace/FilteredFace.

2. Aliased text with shear/rotation produced garbled output because
   NoAAFiller cannot handle non-axis-aligned paths. Now forces AA for
   non-axis-aligned outlines in both drawStringCPUAliased and drawStringCPU,
   matching Skia computeAxisAlignmentForHText pattern.

8 new tests covering advance consistency and shear rendering quality.

* fix(test): skip ink-width assertion when font lacks test glyphs

Cantarell VF trimmed has no Latin glyphs — rightmostInk=-1 on CI.
Skip subtest instead of failing with impossible -50px width.

v0.50.15

Toggle v0.50.15's commit message
Merge branch 'main' of https://github.com/gogpu/gg

v0.50.14

Toggle v0.50.14's commit message
Merge branch 'main' of https://github.com/gogpu/gg

v0.50.13

Toggle v0.50.13's commit message
Merge branch 'main' of https://github.com/gogpu/gg

v0.50.12

Toggle v0.50.12's commit message
Merge branch 'main' of https://github.com/gogpu/gg

v0.50.11

Toggle v0.50.11's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore: prepare v0.50.11 release — deps + docs for #466-469 (#471)

* chore: prepare v0.50.11 — gogpu v0.48.3, CHANGELOG/README/ROADMAP for #466-469

* chore: update gogpu v0.48.4, finalize v0.50.11

v0.50.10

Toggle v0.50.10's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(gpu): bind group lifecycle + deps v0.30.29 + examples update (#460)

* fix(gpu): defer bind group release for shared encoder (ADR-056, #287)

Shared encoder path released bind groups before gogpu submitted,
causing use-after-free. Own-encoder path unaffected (submit before
return). Fix: defer release to BeginFrame() for shared encoder,
matching Skia Graphite frame-scoped resource lifecycle.

Tested: Vulkan 2314+ frames, DX12, GLES — all 60 FPS stable.

* fix(gpu): defer bind group release for shared encoder + update examples

Shared encoder path released bind groups before submit, causing
use-after-free (wgpu#287). Defer to BeginFrame() for shared encoder.
Update all 14 examples to latest ecosystem deps. Remove stale replace
directives.

v0.50.9

Toggle v0.50.9's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore: prepare release v0.50.9 (#459)