Extract brush panel UI, app startup shell, and Win32 runtime shell

This commit is contained in:
2026-06-16 22:03:27 +02:00
parent a2a67960c8
commit 24d9d5b6e2
13 changed files with 480 additions and 332 deletions

View File

@@ -83,11 +83,11 @@ Current hotspot files:
- `src/app_layout.cpp`: 125 lines
- `src/canvas_modes.cpp`: 402 lines
- `src/node.cpp`: 389 lines
- `src/main.cpp`: 271 lines
- `src/node_panel_brush.cpp`: 435 lines
- `src/main.cpp`: 166 lines
- `src/node_panel_brush.cpp`: 337 lines
- `src/node_stroke_preview.cpp`: 562 lines
- `src/node_canvas.cpp`: 219 lines
- `src/app.cpp`: 292 lines
- `src/app.cpp`: 171 lines
- `src/app_dialogs.cpp`: 168 lines
Current architecture mismatches that must be treated as real blockers:
@@ -216,8 +216,13 @@ 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`, which materially thins `src/main.cpp` even
though broader entrypoint/runtime composition still remains there,
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
lives in `src/platform_windows/windows_runtime_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

View File

@@ -536,7 +536,7 @@ Status: In Progress
Why now:
`src/app.cpp` still carries startup, frame flow, queue draining, recording,
and composition logic in one 292-line file.
and composition logic in one 171-line file.
Current slice:
- UI observer math now routes through `src/legacy_app_frame_services.cpp`
@@ -553,6 +553,11 @@ Current slice:
`App::render_thread_tick(...)` now also live in
`src/legacy_app_runtime_shell_services.cpp` instead of staying inline in
`src/app.cpp`, which materially thins the remaining frame/runtime shell.
- `App::create(...)`, `App::initAssets(...)`, `App::initLog(...)`, and
`App::init(...)` now also live in `src/legacy_app_startup_services.*`
instead of staying inline in `src/app.cpp`, which reduces the remaining app
file to a thinner retained composition surface around startup and runtime
delegation.
Write scope:
- `src/app.cpp`
@@ -639,6 +644,12 @@ Current slice:
in `src/platform_windows/windows_window_shell.*` instead of `src/main.cpp`,
which materially thins the entry file even though broader runtime/entrypoint
composition is still open
- the remaining interactive Win32 runtime pocket for touch registration,
render/UI thread startup, debug GL callback hookup, Wintab init/skip, icon
setup, placement restore, optional VR start, splash dismissal, message
loop, and shutdown cleanup now also lives in
`src/platform_windows/windows_runtime_shell.*` instead of `src/main.cpp`,
which reduces the entry TU to a much smaller composition root
- prepared-file background work now runs through an `AppRuntime`-owned worker
queue instead of a retained static worker in `src/app_events.cpp`
- canvas async import/export/save/open background work now also runs through an
@@ -1089,6 +1100,12 @@ Current slice:
`src/node_panel_brush.cpp`, which materially thins another retained preset
panel UI pocket even though cloud/package worker ownership remains the
follow-up.
- `NodePanelBrush` brush texture panel init, selection dispatch,
popup-close event handling, restore-failure prompt flow, and added-state
reset now also live in `src/legacy_brush_panel_ui.*` instead of staying
inline in `src/node_panel_brush.cpp`, which trims another retained brush UI
workflow pocket while preserving the live node as a thinner controller
surface.
Write scope:
- `src/legacy_cloud_services.*`