Extract canvas stroke commit and brush preset services

This commit is contained in:
2026-06-16 19:07:04 +02:00
parent a5002a4e3e
commit 200265e11d
10 changed files with 1188 additions and 1005 deletions

View File

@@ -91,7 +91,7 @@ Status: In Progress
Why now:
`src/canvas.cpp` is still the biggest single architectural blocker at about
2592 lines.
2122 lines.
Current slice:
- Canvas state-management helpers for picking, clear/clear-all, layer
@@ -112,6 +112,11 @@ Current slice:
live in `src/legacy_canvas_object_draw_services.*` instead of staying inline
in `src/canvas.cpp`, which trims another coherent object-draw and
viewport-state execution pocket from the live canvas shell.
- `Canvas::stroke_draw_samples(...)`, `Canvas::stroke_commit()`, and the
larger stroke sample/commit execution family now also live in
`src/legacy_canvas_stroke_commit_services.*` instead of staying inline in
`src/canvas.cpp`, which trims another large retained stroke-render pocket
from the live canvas shell.
- Shared canvas-mode GL wrappers plus the `CanvasModeBasicCamera` and
`CanvasModeCamera` input handlers now also live in
`src/legacy_canvas_mode_helpers.*` instead of staying inline in
@@ -271,6 +276,10 @@ Current slice:
route through `execute_node_canvas_draw_merged_pass(...)`, which trims
another coherent merged draw-orchestration block from the live node even
though the broader draw loop still remains inline.
- `NodeCanvas::handle_event()` now also routes through the local
`execute_node_canvas_handle_event(...)` helper, which trims another coherent
input-routing block from `src/node_canvas.cpp` even though the node still
owns broader canvas/controller behavior.
Write scope:
- `src/node_stroke_preview.cpp`
@@ -299,7 +308,7 @@ Mini-model packet:
#### ARC-RND-003 - Replace App-Facing `Texture2D`/`RTT` Use With Renderer API Contracts
Status: Ready
Status: In Progress
Why now:
Future Vulkan and Metal work needs the live app to stop treating retained
@@ -984,6 +993,11 @@ Current slice:
`src/node_panel_brush.cpp`, which trims a coherent retained brush-workflow
pocket from the live UI node even though cloud and package-worker ownership
still remain separate follow-up work.
- `NodePanelBrushPreset` save/restore plus PPBR/ABR import/export routing now
also lives in `src/legacy_brush_preset_services.*` instead of staying inline
in `src/node_panel_brush.cpp`, which trims another large preset-workflow
pocket from the live UI node even though the broader cloud/package worker
split still remains follow-up work.
Write scope:
- `src/legacy_cloud_services.*`