Extract node canvas events and preview/node geometry shells

This commit is contained in:
2026-06-16 23:31:30 +02:00
parent dde6123598
commit 6b337b2d87
11 changed files with 446 additions and 333 deletions

View File

@@ -235,8 +235,8 @@ Current slice:
which trims another coherent setup pocket from
`src/node_stroke_preview.cpp` even though worker/readback ownership and
broader preview flow still remain inline.
- `src/node_stroke_preview.cpp` is now 280 lines after moving the preview
background-capture and stroke-frame planning pocket into
- `src/node_stroke_preview.cpp` is now 192 lines after moving the remaining
preview GL dispatch and texture-slot binding pocket into
`legacy_node_stroke_preview_runtime_services.*`.
- The remaining immediate preview pass shell in
`NodeStrokePreview::draw_stroke_immediate()` now also routes through
@@ -337,10 +337,10 @@ Current slice:
route through `execute_node_canvas_draw_merged_pass(...)`, which trims
another coherent merged draw-orchestration block from the live node even
though the broader draw loop still remains inline.
- `NodeCanvas::handle_event()` now also routes through the local
`execute_node_canvas_handle_event(...)` helper, which trims another coherent
input-routing block from `src/node_canvas.cpp` even though the node still
owns broader canvas/controller behavior.
- `NodeCanvas::handle_event()` now routes through
`handle_legacy_node_canvas_event(...)` in
`src/legacy_canvas_tool_services.*`, which moves the live input/controller
pocket out of `src/node_canvas.cpp` and keeps the node on a thinner shell.
- `NodeCanvas` restore/clear context, resize handling, camera reset, buffer
creation, cursor visibility/update, tick, and destroy ownership now also
live in `src/legacy_node_canvas_state_services.*` instead of staying inline
@@ -352,6 +352,12 @@ Current slice:
inline in `src/node_stroke_preview.cpp`, which materially thins the preview
node around its runtime-facing shell even though live pass execution still
remains.
- The remaining low-level preview GL/runtime pocket for viewport queries,
clear-color restore, texture-slot binding, mixer unbind, and
destination/pattern texture plumbing now also lives in
`src/legacy_node_stroke_preview_runtime_services.*` instead of staying
inline in `src/node_stroke_preview.cpp`, which trims another coherent
runtime-facing shell pocket from the live node.
- The remaining live render/pass orchestration in
`NodeStrokePreview::draw_stroke_immediate()` now also lives in
`src/legacy_node_stroke_preview_draw_services.*` instead of staying inline in
@@ -374,6 +380,11 @@ Current slice:
also live in `src/legacy_node_canvas_draw_services.*` instead of staying
inline in `src/node_canvas.cpp`, which materially reduces the live node to a
thinner controller surface around event routing and state wrappers.
- The remaining generic node geometry/state pocket for `Node::SetSize(...)`,
`SetMinSize(...)`, `SetMaxSize(...)`, and `SetPosition(const glm::vec2)`
now also lives in `src/legacy_ui_node_style.*` instead of staying inline in
`src/node.cpp`, which trims another coherent base scene-graph shell pocket
without changing the public surface.
Write scope:
- `src/node_stroke_preview.cpp`
@@ -848,6 +859,12 @@ Current slice:
`Node::GetRTL()` now also lives in `src/legacy_ui_node_style.*` instead of
staying inline in `src/node.cpp`, which trims another coherent generic node
shell pocket without changing the public surface.
- The remaining geometry/state pocket for `Node::SetSize(...)`,
`Node::SetMinSize(...)`, `Node::SetMaxSize(...)`, and
`Node::SetPosition(const glm::vec2)` now also lives in
`src/legacy_ui_node_style.*` instead of staying inline in `src/node.cpp`,
which materially thins the live base shell by moving the cached size/position
mutation and redraw signaling out of the node file.
- The remaining generic `Node` lifecycle/state pocket for no-op lifecycle
hooks, add/remove propagation, move construction, destruction cleanup, and
base clone plumbing now also lives in `src/legacy_ui_node_lifecycle.*`