Extract node lifecycle, preview runtime, and Win32 input state

This commit is contained in:
2026-06-16 22:18:30 +02:00
parent 24d9d5b6e2
commit 2a2f0c7dd6
12 changed files with 420 additions and 245 deletions

View File

@@ -82,10 +82,10 @@ Current hotspot files:
- `src/canvas.cpp`: 429 lines
- `src/app_layout.cpp`: 125 lines
- `src/canvas_modes.cpp`: 402 lines
- `src/node.cpp`: 389 lines
- `src/main.cpp`: 166 lines
- `src/node.cpp`: 260 lines
- `src/main.cpp`: 141 lines
- `src/node_panel_brush.cpp`: 337 lines
- `src/node_stroke_preview.cpp`: 562 lines
- `src/node_stroke_preview.cpp`: 545 lines
- `src/node_canvas.cpp`: 219 lines
- `src/app.cpp`: 171 lines
- `src/app_dialogs.cpp`: 168 lines
@@ -216,7 +216,10 @@ Current architecture mismatches that must be treated as real blockers:
`src/platform_windows/windows_bootstrap_helpers.cpp` instead of
`src/main.cpp`, while the Win32 window procedure and retained message-handling
shell now also live in `src/platform_windows/windows_window_shell.*`
instead of `src/main.cpp`, while the remaining interactive Win32 runtime
instead of `src/main.cpp`, while retained input-state zeroing and reverse
key-map initialization now also live in
`src/platform_windows/windows_window_shell.*` instead of `src/main.cpp`,
while the remaining interactive Win32 runtime
pocket for touch registration, render/UI thread startup, GL debug callback
hookup, Wintab initialization/skip, icon setup, placement restore, optional
VR start, splash dismissal, message loop, and shutdown cleanup now also
@@ -248,7 +251,11 @@ Current architecture mismatches that must be treated as real blockers:
the remaining immediate preview pass shell now also routes through
`execute_legacy_node_stroke_preview_draw_immediate_shell(...)`, which
materially reduces the live preview-pass body even though broader
worker/readback flow still remains inline, while
worker/readback flow still remains inline, while the immediate preview
runtime/orchestration block for stroke setup, prepared-stroke construction,
pass planning, shader setup, and live render request assembly now also
routes through `src/legacy_node_stroke_preview_runtime_services.*` instead
of staying inline in `src/node_stroke_preview.cpp`, while
`NodeCanvas::draw()` unmerged-pass blend-gate, layer-orientation, and
callback-assembly setup now also route through
`execute_node_canvas_draw_unmerged_pass(...)`, which trims another coherent
@@ -333,7 +340,11 @@ Current architecture mismatches that must be treated as real blockers:
`clear_context`, `update`, `update_internal`, and `tick` now also lives in
`src/legacy_ui_node_execution.cpp`, while `Node::parse_attributes(...)` now
also routes through `src/legacy_ui_node_attributes.*` instead of staying
inline in `src/node.cpp`,
inline in `src/node.cpp`, while 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 routes through
`src/legacy_ui_node_lifecycle.*` instead of staying inline in
`src/node.cpp`,
while `Canvas` point-trace/unproject/project/camera push-pop-get-set and
face-to-shape helpers now also route through
`src/legacy_canvas_projection_services.*` instead of staying inline in