Thin app dialog and renderer adapter ownership

This commit is contained in:
2026-06-17 18:43:43 +02:00
parent dd638e5af4
commit 1a64118b2c
11 changed files with 181 additions and 178 deletions

View File

@@ -18,6 +18,26 @@ agent or engineer to remove them without reconstructing context from chat.
## Reductions
- 2026-06-17: `DEBT-0036` was narrowed again. `src/canvas_layer.cpp` now
routes retained `Layer` / `LayerFrame` render queueing through
`src/renderer_gl/render_runtime_dispatch.h` instead of direct
`App::I->render_task*` calls; retained `Canvas::I` draw-state use and the
broader canvas renderer execution remain.
- 2026-06-17: `DEBT-0034` was narrowed again.
`LegacyAboutMenuServices::run_performance_test(...)` in
`src/legacy_app_shell_services.cpp` now delegates the retained stroke/timing
workflow to `src/legacy_app_shell_performance_test_services.*`, so the About
menu adapter no longer owns the inline render-task/canvas execution body.
- 2026-06-17: `DEBT-0040`/`DEBT-0042` were narrowed again. `App::dialog_save()`
and `App::dialog_save_ver()` in `src/app_dialogs_workflow.cpp` now delegate
Save As / Save Version acceptance through
`src/legacy_document_session_services.*`, so the app dialog shell no longer
owns the retained plan/target lookup entrypoints for those save paths.
- 2026-06-17: `DEBT-0047` was narrowed again. The desktop async PPBR export
path in `src/legacy_brush_package_export_services.cpp` now uses
`AppRuntime::canvas_async_task` plus named completion helpers instead of a
file-static worker singleton, while retained preset-panel execution and
dialog-owned request extraction still remain.
- 2026-06-17: `DEBT-0036` was narrowed again. Retained `Shape`,
`src/shader.cpp`, and `src/font.cpp` now queue render-thread create/update/
destroy work through `src/renderer_gl/render_runtime_dispatch.h` instead of

View File

@@ -53,9 +53,9 @@ Key facts:
- `Canvas::I` still appears hundreds of times in retained canvas modes, panels,
and workflow bridges.
- Raw `Node*` and callback captures remain a dominant UI lifetime risk.
- `CanvasLayer` and retained stroke-preview/runtime draw paths still depend on
legacy render/runtime helpers, but `RTT`, `Texture2D`, `Shape`, `Shader`,
and `TextMesh` no longer call `App::I` directly for queueing.
- Retained stroke-preview/runtime draw paths still depend on legacy
render/runtime helpers, but `RTT`, `Texture2D`, `Shape`, `Shader`,
`TextMesh`, and `CanvasLayer` no longer call `App::I` directly for queueing.
- `AppRuntime` now owns synchronized running flags plus explicit post/reject,
same-thread execution, and queue-drain behavior, but broader singleton reach
and app-shell ownership remain.