ShaderEffect and QOL helpers

278948
10 June 2026
27 changes in this update

Added

24 changes
  • ShaderEffect refactor: construct from a shader path with an indexer uniform bag.

  • Uniforms accept per-frame functions and a built-in clock:

  • Hud.Overlay() - full-screen HUD root column layout, pointer-through (does not swallow game input)

  • Hud.Fill() - absolute layer, pointer-through; the standard Hud for shader effects

  • Hud.Scrim(color) - edge-pinned tinted backdrop for modals. PointerEvents left to the caller so it can toggle on open/close

  • Hud.Wallpaper(texture, path) - background image layer by texture or by path

  • Hud.Anchored(anchor, content, padding) - pins content to a screen corner or edge center, pointer-through

  • Hud.Spacer() - flex-grow gap that pushes siblings apart

  • Hud.Divider(color) - 1px full-width horizontal rule. low-alpha white by default.

  • Controls.Button(...) ready-made button and Children.AddIf(condition, child)

  • Container.Disabled forces pointer-off and dims, per node, applied after state variants.

  • Container.SwallowClick stops a click from bubbling

  • PointerDrag frame-polled move/resize helper, UI-scale correct via Current(panel)

  • PaddingX/Y

  • MarginX/Y

  • BorderTopRadius

  • BorderBottomRadius

  • BorderLeftRadius

  • BorderRightRadius

  • All 9 animation dampers gain Tick(dt).

  • KeyTracker.Pressed(name) rising-edge query.

  • Text.Style takes a TextStyle bundle for one-shot font blocks.

  • Cell.Mount<TCell>(key, seed, configure): seed runs once at first mount, configure every rebuild.

  • Image gains a positioning subset and defaults BackgroundRepeat to NoRepeat, stopping ObjectFit.Contain tiling

Improved

3 changes
  • ShaderEffect materials are created on the main thread (fixes a render-thread crash)

  • Disabled styling is applied after state variants so it wins over hover/active.

  • Theme motion tokens (MotionFast/Base/Slow) are ints, removed casts.