Extract layout bootstrap and thin NodeCanvas startup shells

This commit is contained in:
2026-06-16 17:57:17 +02:00
parent 0441dc4077
commit 1442c13dd7
10 changed files with 595 additions and 458 deletions

View File

@@ -80,13 +80,13 @@ What is still carrying too much live ownership:
Current hotspot files:
- `src/canvas.cpp`: 2645 lines
- `src/app_layout.cpp`: 229 lines
- `src/app_layout.cpp`: 125 lines
- `src/canvas_modes.cpp`: 1798 lines
- `src/node.cpp`: 1594 lines
- `src/main.cpp`: 390 lines
- `src/main.cpp`: 271 lines
- `src/node_panel_brush.cpp`: 1197 lines
- `src/node_stroke_preview.cpp`: 890 lines
- `src/node_canvas.cpp`: 831 lines
- `src/node_canvas.cpp`: 852 lines
- `src/app.cpp`: 502 lines
- `src/app_dialogs.cpp`: 142 lines
@@ -135,7 +135,14 @@ Current architecture mismatches that must be treated as real blockers:
`execute_legacy_canvas_draw_unmerged_node_canvas_shell(...)`, while the
broader unmerged cache/viewport/background/composite pass setup now also
routes through
`execute_legacy_canvas_draw_unmerged_node_canvas_pass(...)`.
`execute_legacy_canvas_draw_unmerged_node_canvas_pass(...)`, while
`NodeCanvas::draw()` setup, merged-pass shell, and unmerged-pass shell now
also route through `prepare_legacy_node_canvas_draw_setup(...)`,
`execute_legacy_canvas_draw_node_canvas_shell(...)`,
`execute_legacy_canvas_draw_merged_pass(...)`, and
`execute_legacy_canvas_draw_node_canvas_unmerged_pass(...)`, which
materially shortens the live `NodeCanvas::draw()` body even though the file
itself is still large.
- `app_layout.cpp` and `app_dialogs.cpp` are still mixed shell/controller files
rather than thin composition/binding surfaces, even though tools-menu binding
plus nested panels/options submenu wiring now live in
@@ -154,8 +161,9 @@ Current architecture mismatches that must be treated as real blockers:
persisted floating/docked panel-state ownership now also live in
`src/app_layout_ui_state.cpp`, while draw-toolbar binding now also lives in
`src/app_layout_draw_toolbar.cpp`, while brush-refresh now also lives in
`src/app_layout_brush.cpp`, and `src/app_layout.cpp` is now mostly
layout/bootstrap composition, while the
`src/app_layout_brush.cpp`, while layout bootstrap plus reload/load
continuation wiring now also lives in `src/app_layout_bootstrap.cpp`, and
`src/app_layout.cpp` is now mostly thin call-through entrypoints, while the
informational overlay opener family now also lives in
`src/app_dialogs_info_openers.cpp` and the corresponding `App::dialog_*`
entrypoints are thinner, while the export/video/PPBR dialog family now also
@@ -193,8 +201,9 @@ Current architecture mismatches that must be treated as real blockers:
while the retained Win32 VR/HMD shell now also routes through
`src/platform_windows/windows_vr_shell.h` instead of staying inline in
`src/main.cpp`, while RenderDoc startup/frame capture, SHCore DPI bootstrap,
Win32 error-string conversion, and the GL debug pre/post callbacks now also
live in `src/platform_windows/windows_bootstrap_helpers.cpp` instead of
Win32 error-string conversion, the GL debug pre/post callbacks, and the WMI
startup probe now also live in
`src/platform_windows/windows_bootstrap_helpers.cpp` instead of
`src/main.cpp`, while Win32 lifecycle running-state, close/shutdown
sequencing, FPS title update/wakeup posting, stylus frame update, window
preference save, and VR lifecycle wrappers now also live in