Extract UI state and Win32 window shell

This commit is contained in:
2026-06-16 13:16:19 +02:00
parent cb9d06c6dc
commit 8ea56cbd30
12 changed files with 619 additions and 670 deletions

View File

@@ -80,12 +80,12 @@ What is still carrying too much live ownership:
Current hotspot files:
- `src/canvas.cpp`: 2645 lines
- `src/app_layout.cpp`: 717 lines
- `src/app_layout.cpp`: 353 lines
- `src/canvas_modes.cpp`: 1798 lines
- `src/node.cpp`: 1594 lines
- `src/main.cpp`: 847 lines
- `src/main.cpp`: 487 lines
- `src/node_panel_brush.cpp`: 1197 lines
- `src/node_stroke_preview.cpp`: 948 lines
- `src/node_stroke_preview.cpp`: 890 lines
- `src/node_canvas.cpp`: 910 lines
- `src/app.cpp`: 502 lines
- `src/app_dialogs.cpp`: 142 lines
@@ -144,7 +144,10 @@ Current architecture mismatches that must be treated as real blockers:
now also lives in `src/app_layout_main_toolbar.cpp` and
`App::init_toolbar_main()` is now a thin call-through, while edit-menu
binding now also lives in `src/app_layout_edit_menu.cpp` and
`App::init_menu_edit()` is now a thin call-through, while the
`App::init_menu_edit()` is now a thin call-through, while UI-direction and
persisted floating/docked panel-state ownership now also live in
`src/app_layout_ui_state.cpp`, and `src/app_layout.cpp` is now mostly
layout/bootstrap composition, 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
@@ -192,8 +195,10 @@ Current architecture mismatches that must be treated as real blockers:
`src/platform_windows/windows_bootstrap_helpers.*` for runtime-data
discovery, startup-state initialization, window creation, pixel-format
setup, GL loader init, runtime-info logging, and core-context upgrade
sequencing, which materially thins `src/main.cpp` even though broader window
procedure and retained shell flow still remain there,
sequencing, 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`, which materially thins `src/main.cpp` even
though broader entrypoint/runtime composition still remains there,
while `App::rec_loop()` now delegates worker-iteration orchestration into
the retained recording bridge, `App::update_rec_frames()` now delegates
recording label refresh through that same retained recording path, and the
@@ -212,7 +217,10 @@ Current architecture mismatches that must be treated as real blockers:
still owns worker-side readback flow and encoder-state label reads, while the
main live-pass request assembly and framebuffer-copy setup now also route
through `src/legacy_node_stroke_preview_execution_services.h`, even though
broader preview-pass orchestration still lives in `src/node_stroke_preview.cpp`, while
broader preview-pass orchestration still lives in
`src/node_stroke_preview.cpp`, while the immediate preview pass-sequencing
family inside `draw_stroke_immediate()` now also routes through
`NodeStrokePreview::execute_stroke_draw_immediate_pass_sequence(...)`, while
`Node` child attach/detach/reorder operations now route through named local
helpers in `src/node.cpp`, which makes the scene-graph mutation paths easier
to reason about without yet reducing the file or moving ownership into