西风逍遥游
|
a2dd8d7fb1
|
feat(ui): two-pass layout, images, events, virtualization, viewport
Gap-closing work for the declarative UI module vs UE/Unity/Godot:
- Layout: real measure pass (measureTree) + pure flexArrange with
margin/padding/min-max/percent/anchor/absolute placement; window size,
anchors and percentage sizing; script layout props.
- Widgets: Image/ImageButton (engine textures + nine-patch + tint/uv),
Combo, text wrapping + CJK font candidates/ranges, InputText 1024B,
virtualized ScrollList/virtualList.
- Events: script onClick/onChange callbacks with structured payloads
(keeps the poll queues for compatibility).
- Tooling: UI JSON save/load (saveTreeJson/loadTreeJson), host pos tween
animation, gamepad nav, per-frame UI stats.
- Viewport: embedded offscreen render target widget with input routing;
RenderSystem3D::renderToCanvas preview pass + Graphics::renderScene3DToCanvas;
editor.newHeightmapMesh/updateHeightmapMesh for heightmap terrain;
examples/terrain-editor demonstrating orbit camera + raise/lower brush.
- Tests: 32 UI tests including real-window Vulkan smoke for the viewport.
|
2026-08-19 09:07:55 +08:00 |
|