Extract node events, transform mode, and preview pass shells

This commit is contained in:
2026-06-16 19:30:55 +02:00
parent 200265e11d
commit f78f72b607
11 changed files with 1086 additions and 999 deletions

View File

@@ -91,7 +91,7 @@ Status: In Progress
Why now:
`src/canvas.cpp` is still the biggest single architectural blocker at about
2122 lines.
2122 lines, with `src/canvas_modes.cpp` still large at about 1014 lines.
Current slice:
- Canvas state-management helpers for picking, clear/clear-all, layer
@@ -122,6 +122,10 @@ Current slice:
`src/legacy_canvas_mode_helpers.*` instead of staying inline in
`src/canvas_modes.cpp`, which trims another coherent retained canvas-view
interaction pocket from the broader canvas/render hotspot family.
- The `CanvasModeTransform` interaction family now also lives in
`src/legacy_canvas_mode_transform.cpp` instead of staying inline in
`src/canvas_modes.cpp`, which materially thins another retained
transform-mode pocket from the broader canvas/render hotspot family.
Write scope:
- `src/canvas.cpp`
@@ -182,6 +186,11 @@ 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.
- The remaining immediate preview pass shell in
`NodeStrokePreview::draw_stroke_immediate()` now also routes through
`execute_legacy_node_stroke_preview_draw_immediate_shell(...)`, which
materially reduces the live preview-pass body even though worker/readback
ownership still remains inline.
- `NodeCanvas` merged-path per-plane merged-texture draw execution now also
routes through `execute_legacy_canvas_draw_merge_layer_texture(...)`.
- `NodeCanvas` merged-path and non-blend checkerboard background setup now also
@@ -706,6 +715,10 @@ Current slice:
now also lives in `src/legacy_ui_node_execution.cpp` instead of staying
inline in `src/node.cpp`, which materially thins the base scene-graph file
without changing its public surface.
- `Node::on_event(...)` plus mouse/key capture and release now also live in
`src/legacy_ui_node_event.*` instead of staying inline in `src/node.cpp`,
which materially thins the base scene-graph event shell without changing its
public surface.
Write scope:
- `src/node.cpp`