Skip to content

Releases: gogpu/ui

v0.1.44

Choose a tag to compare

@kolkov kolkov released this 09 Jul 10:57
a961458

Changed

  • deps: gg v0.50.3 → v0.50.4 (composite hardening), x/image v0.44.0, x/text v0.40.0

Documentation

  • ARCHITECTURE.md comprehensive refresh: 26 widgets, 4 design systems (70 painters), per-widget layout caching (ADR-032), removed Engine references

v0.1.43

Choose a tag to compare

@kolkov kolkov released this 07 Jul 22:11
7d4e30a

Changed

  • deps: gg v0.50.2 → v0.50.3, gogpu v0.43.4 → v0.44.1, wgpu v0.30.9 → v0.30.10
    • gogpu v0.44.1: Multi-backend auto-selection (old GPUs without Vulkan get DX12/GLES instead of software), macOS live resize fix
    • gg v0.50.3: TT hinter improvements

v0.1.42

Choose a tag to compare

@kolkov kolkov released this 05 Jul 11:33
25eaa50

Added

  • Layout cache activation (ADR-032 Phase 2b, #160, @TimLai666) — per-widget layout caching via widget.LayoutChild. Layout cost: O(total nodes) → O(affected subtree). 32 sites converted across 23 files.
  • Animation tick before layout (ADR-032 GAP-3, #164) — AnimationTicker interface. Collapsible and Transition animations tick BEFORE layout (Flutter handleBeginFramehandleDrawFrame pattern). Layout is a pure function, required for RelayoutBoundary (Phase 5).

Removed

  • internal/layout/Engine (ADR-032 CACHE-030, #163) — -769 lines of dead code. Layout caching fully handled by widget.LayoutChild.

Changed

  • deps: gg v0.50.1 → v0.50.2, gogpu v0.43.1 → v0.43.4, wgpu v0.30.8 → v0.30.9

v0.1.41

Choose a tag to compare

@kolkov kolkov released this 01 Jul 12:01
68cea50

Fixed

  • Collapsible animation glitch on Wayland (#152) — two fixes: (1) force final redraw after animation completes so render loop doesn't go idle with stale content; (2) send full-window wl_surface.damage_buffer on root repaint so Wayland compositors update the entire display. Confirmed fixed by @porjo.

Changed

  • Event-driven rendering by default (ADR-035) — removed WithContinuousRender(false) boilerplate from all examples. gogpu v0.43.0+ defaults to event-driven.
  • deps: gg v0.49.2 → v0.50.1, gogpu v0.42.11 → v0.43.1, wgpu v0.30.7 → v0.30.8

v0.1.40

Choose a tag to compare

@kolkov kolkov released this 29 Jun 00:24

Changed

  • Event-driven rendering by default (ADR-035) — removed WithContinuousRender(false) from all examples and documentation. No longer needed since gogpu v0.43.0 defaults to event-driven rendering (winit 0.29 pattern).
  • deps: gg v0.49.2 → v0.49.3, gogpu v0.42.11 → v0.43.0

v0.1.39

Choose a tag to compare

@kolkov kolkov released this 28 Jun 19:01
385e99c

Changed

  • deps: gg v0.49.0 → v0.49.2, gogpu v0.42.8 → v0.42.11, wgpu v0.30.5 → v0.30.7, gputypes v0.5.0 → v0.5.1
    • gg v0.49.2: Software Vulkan (llvmpipe/SwiftShader/WARP) offscreen boundary textures now work (ADR-046). softwareMode no longer disables GPU — software adapters treated as full GPU implementations per enterprise pattern. MSAA runtime fallback 4x→1x.
    • gogpu v0.42.11: Wayland frame callback gating (ADR-049), golden tests + RenderToImage.
    • wgpu v0.30.7: Software backend format-aware copy + GLES LockOSThread fix.
    • gputypes v0.5.1: BlockCopySize() for format-aware buffer sizing.

v0.1.38

Choose a tag to compare

@kolkov kolkov released this 28 Jun 04:37

Added

  • Layout invalidation wiring (#151, @TimLai666) — ADR-032 Phase 2a: BindToSchedulerLayout for layout-affecting signals, MarkNeedsLayout() in event handlers. 11 signal bindings + 9 event handlers converted. Invalidation infrastructure ready for cache activation (Phase 2b).

Full changelog: https://github.com/gogpu/ui/blob/main/CHANGELOG.md

v0.1.37

Choose a tag to compare

@kolkov kolkov released this 27 Jun 10:07

Added

  • Painter/Widget behavior separation (ADR-034) — enterprise refactor moving ALL behavioral logic from theme painters to core widgets. Painters are now draw-only. Enables community theme authoring.
  • LayoutMetrics — 7 widgets define optional interface for theme-controlled spatial metrics (height, padding, fontSize, radius). 35 compile-time checked implementations.
  • ThemeBundle (theme.Bundle) — packages all painters for complete theme installation.
  • Gallery: 8 themes — Fluent and Cupertino added to theme switcher.
  • internal/textmetrics — shared MeasureText-based text measurement.

Fixed

  • DevTools cursor wrong position (#126) — cursor now uses widget-computed CursorRect via MeasureText across all themes.
  • Cursor height — 2px caretHeightOffset (Flutter pattern).

Changed (breaking, v0.x)

  • TextField PaintState expanded with pre-computed fields, pointer receiver
  • titlebar: DrawXPaintX methods
  • linechart: Bounds moved into PaintState
  • progressbar: ProgressBarColorSchemeColorScheme

Dependencies

  • gg v0.48.16 → v0.49.0
  • gogpu v0.42.6 → v0.42.8
  • wgpu v0.30.3 → v0.30.5

Full changelog: https://github.com/gogpu/ui/blob/main/CHANGELOG.md

v0.1.36

Choose a tag to compare

@kolkov kolkov released this 25 Jun 09:53

Added

  • Layout cache infrastructure (#143, @TimLai666) — ADR-032 Phase 1: per-node constraint cache on WidgetBase, widget.LayoutChild() helper, MarkNeedsLayout() with idempotency guard, GOGPU_DEBUG_LAYOUT=1 debug verifier. Purely additive — inert until Phase 2.
  • Gallery: "Show Dialog" button — interactive trigger opens modal overlay.

Fixed

  • Radio group stale selection pixels (#145) — invalidate both newly-selected and previously-selected items on selection change. Expanded invalidation rect for focus ring area. Affects all damage-aware compositors.
  • Inconsistent glyph weights in ListView (#148) — snap RepaintBoundary blit positions to integer device pixels (Flutter ComputeIntegralTransCTM pattern).
  • Collapsible content bleeding (#147) — update clip rect for invisible boundaries, add visibility check in compositor blit path, skip zero-area clips.
  • Spinner arc artifact — align damage rect rounding with blit position to eliminate 1px stale arc fragments.

Dependencies

  • gg v0.48.13 → v0.48.16
  • gogpu v0.42.1 → v0.42.6
  • wgpu v0.30.2 → v0.30.3

Full changelog: https://github.com/gogpu/ui/blob/main/CHANGELOG.md

v0.1.35

Choose a tag to compare

@kolkov kolkov released this 21 Jun 09:40
289f31b

Added

  • Badge widget (#138, @TimLai666) — notification badge (count/dot), signal bindings, 99.3% coverage
  • Chip widget (#139, @TimLai666) — action/filter chip (M3 spec), two-way signal write-back, 99.0% coverage
  • Badge + Chip design system painters — M3, DevTools, Fluent, Cupertino (86 tests)

Performance

  • Layout pool (#140, @TimLai666) — sync.Pool for flex/grid/stack: 0 allocs/op
  • ListView per-item decorator — hover dirties only 1 item (Flutter/Android/Qt pattern)
  • ListView scroll recycling — reuse overlapping decorators (RecyclerView pattern)

Fixed

  • Debug overlay fade — cyan + green auto-fade 400ms without mouse movement
  • ListView root re-record on hover — removed legacy invalidateItemRect

Dependencies

  • gg v0.48.13, gogpu v0.42.1, wgpu v0.30.2, x/image v0.43.0