Own canvas async work and thin NodeCanvas composite

This commit is contained in:
2026-06-16 07:10:09 +02:00
parent 75f57213ca
commit 4d7a23a1fd
7 changed files with 279 additions and 78 deletions

View File

@@ -49,8 +49,10 @@ Completed, blocked, and superseded task history moved to
- `platform_legacy` is still part of the live app shell
- The app runtime boundary is not finished:
- render/UI queues are static `App` state
- detached workers still launch from canvas, preview, document export, and
recording code
- detached workers still launch from preview and recording code
- canvas async import/export/save/open now run through an owned in-file
worker, but their retained progress execution is still not a clean runtime
service boundary
- thread-affinity rules are enforced by convention and asserts instead of
explicit runtime contracts
- The UI ownership boundary is not finished:
@@ -127,9 +129,9 @@ Current slice:
- `NodeStrokePreview` final composite plus preview-texture copy now route
through `legacy_node_stroke_preview_execution_services.h`, but the preview
node still owns most live-pass and retained GL resource execution.
- `NodeCanvas` display resolve for the `m_density != 1.f` path now routes
through `legacy_canvas_draw_merge_services.h`, but the cache-to-screen
composite block and broader canvas draw orchestration are still inline.
- `NodeCanvas` display resolve plus cache-to-screen checkerboard/cache-texture
composite now route through `legacy_canvas_draw_merge_services.h`, but
broader canvas draw orchestration is still inline.
Write scope:
- `src/node_stroke_preview.cpp`
@@ -355,8 +357,9 @@ Current slice:
UI-thread completion handoff
- prepared-file save work and grid lightmap launch now also use service-owned
workers with explicit UI-thread handoff
- canvas, preview, document export, and recording-side detached work are still
open
- canvas async import/export/save/open and timelapse export now also use owned
worker queues instead of detached threads
- preview and recording-side detached work are still open
Write scope:
- `src/canvas.cpp`