Thin node loader, Win32 wrappers, and canvas mode shells

This commit is contained in:
2026-06-17 00:10:39 +02:00
parent acee4db356
commit 371095770d
9 changed files with 302 additions and 289 deletions

View File

@@ -81,9 +81,9 @@ Current hotspot files:
- `src/canvas.cpp`: 17 lines
- `src/app_layout.cpp`: 125 lines
- `src/canvas_modes.cpp`: 191 lines
- `src/node.cpp`: 257 lines
- `src/main.cpp`: 156 lines
- `src/canvas_modes.cpp`: 1 line
- `src/node.cpp`: 231 lines
- `src/main.cpp`: 87 lines
- `src/node_panel_brush.cpp`: 2 lines
- `src/node_stroke_preview.cpp`: 160 lines
- `src/node_canvas.cpp`: 85 lines
@@ -131,6 +131,16 @@ Latest slice:
`src/legacy_brush_preset_list_services.*`, and
`src/legacy_brush_preset_services.*`), leaving
`src/node_panel_brush.cpp` as a thin translation unit.
- `Node::load_internal(...)` now routes through
`load_legacy_ui_node(...)` in `src/legacy_ui_node_loader.*`, which moves the
init/attribute-parse/create/child-load/loaded shell out of `src/node.cpp`.
- The remaining Win32 shell wrappers for close, async lock/swap, stylus/FPS
updates, VR start/stop, window-state save, and the window-handle accessor now
live in `src/platform_windows/windows_platform_services.cpp` instead of
`src/main.cpp`, leaving `main.cpp` as a thinner entry/runtime dispatcher.
- The entire `CanvasModeGrid` implementation plus `ActionModeGrid` undo/redo
glue now live in `src/legacy_canvas_mode_helpers.cpp` instead of
`src/canvas_modes.cpp`, leaving `src/canvas_modes.cpp` as a minimal shell.
Current architecture mismatches that must be treated as real blockers:

View File

@@ -391,6 +391,10 @@ Current slice:
render-target validation, viewport/clear-color save-restore, and immediate
runtime request assembly out of the live node file and leaves
`src/node_stroke_preview.cpp` at 160 lines.
- `CanvasModeGrid` plus `ActionModeGrid` undo/redo now also live in
`src/legacy_canvas_mode_helpers.cpp` instead of staying inline in
`src/canvas_modes.cpp`, which leaves the live canvas-modes file as a
minimal shell.
- `NodeCanvas::init()` plus the remaining `NodeCanvas::draw()` outer shell now
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
@@ -908,6 +912,10 @@ Current slice:
base clone plumbing now also lives in `src/legacy_ui_node_lifecycle.*`
instead of staying inline in `src/node.cpp`, which materially thins another
coherent generic scene-graph shell without changing the public surface.
- `Node::load_internal(...)` now also routes through
`load_legacy_ui_node(...)` in `src/legacy_ui_node_loader.*`, which moves the
init/attribute-parse/create/child-load/loaded shell out of `src/node.cpp`
and leaves the remaining live node file thinner.
Write scope:
- `src/node.cpp`
@@ -1090,6 +1098,12 @@ Current slice:
directly in those method bodies
- retained Apple callback injection and broader `platform_legacy` singleton
reach are still open
- The remaining Win32 shell wrappers for close, async lock/swap,
stylus/FPS updates, VR start/stop, window-state save, and the
window-handle accessor now live in
`src/platform_windows/windows_platform_services.cpp` instead of
`src/main.cpp`, which leaves the live entry file as a thinner
startup/runtime dispatcher.
Write scope:
- `src/platform_apple/*`