Thin retained app and render runtime seams
This commit is contained in:
@@ -18,6 +18,24 @@ agent or engineer to remove them without reconstructing context from chat.
|
||||
|
||||
## Reductions
|
||||
|
||||
- 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
|
||||
calling `App::I` directly, and `Shader` render-thread entry points now assert
|
||||
that explicit runtime contract while shader-program and mesh ownership remain
|
||||
retained.
|
||||
- 2026-06-17: `DEBT-0036` was narrowed again. `NodeStrokePreview` no longer
|
||||
owns static worker-thread, queue, or render-mutex state directly;
|
||||
`src/legacy_node_stroke_preview_runtime_services.*` now owns the retained
|
||||
preview worker lifecycle and queue helpers, leaving the node as a thinner
|
||||
adapter while the retained preview runtime still reaches app/render helpers
|
||||
internally.
|
||||
- 2026-06-17: `DEBT-0029` was narrowed again.
|
||||
`LegacyFileMenuServices::pick_image_for_import()` in
|
||||
`src/legacy_app_shell_services.cpp` now delegates retained import execution
|
||||
to `src/legacy_document_image_import_services.*`, so the File-menu adapter no
|
||||
longer defines the live `DocumentImageImportServices` implementation inline;
|
||||
legacy `Image` loading and retained canvas/import-mode execution still remain.
|
||||
- 2026-06-17: `DEBT-0003` was narrowed again. `src/app_runtime.cpp` and
|
||||
`src/app_runtime.h` now synchronize render/UI worker running state, reject
|
||||
cross-thread work once those workers stop, and drain queued work through
|
||||
|
||||
@@ -53,8 +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.
|
||||
- `RTT`, `Texture2D`, `Shape`, `Shader`, `Font`, and `CanvasLayer` still route
|
||||
render work through `App::I` queues.
|
||||
- `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.
|
||||
- `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.
|
||||
|
||||
Reference in New Issue
Block a user