1 authored ui surface renderer
forgejo-actions edited this page 2026-07-11 12:38:13 +00:00

Authored UI Surface Renderer

The authored UI surface renderer turns .aetherui layout nodes into Bevy UI entities for standalone and multiplayer surfaces. It is the shared rendering boundary below layout authoring and above runtime-specific panel behavior.

How It Works

Layout documents resolve into surface nodes, style data, images, text, buttons, containers, and slot descriptors. The renderer spawns Bevy Node, ImageNode, text, and interaction entities from that resolved structure. Runtime callers supply the context that decides which surface is being rendered and what behavior belongs to the spawned entities.

Document-level spawning owns tree shape. Surface-node spawning owns the local conversion from authored layout data into Bevy components.

How To Use It

Add reusable layout rendering behavior in the shared renderer only when both standalone and multiplayer UI can use it. Put panel-specific behavior, gameplay state projection, and input routing in the caller layer.

When adding a node feature, update layout validation and at least one runtime caller so authors can see the feature and runtime can render it.

Invariants

Runtime behavior must not be hidden in generic layout conversion. Slot descriptors must remain stable across reloads. Font handles, parent sizes, and focus policy should be explicit inputs. Missing assets should fail visibly enough for layout validation or preview to explain them.

Debugging

Missing slot descriptors, bad parent dimensions, unresolved font handles, stale layout documents, and focus capture mismatches are the common causes of broken surfaces. Compare authored layout preview with multiplayer Bevy sync when a surface renders in one mode but not the other.