diff --git a/docs/modernization/debt.md b/docs/modernization/debt.md index c527fb8..d9dce4e 100644 --- a/docs/modernization/debt.md +++ b/docs/modernization/debt.md @@ -78,6 +78,10 @@ agent or engineer to remove them without reconstructing context from chat. route through `src/platform_apple/apple_platform_services.*` instead of the catch-all legacy adapter; the Apple path still owns the OS-specific clipboard calls. +- 2026-06-13: `LATER-003` was narrowed again. `Canvas::stroke_draw_mix()` + now calls the retained mix-pass executor directly instead of a local wrapper + shell helper; the live path still owns the concrete mixer framebuffer setup + and GL capability toggles. - 2026-06-13: `DEBT-0036` was narrowed again. `NodeStrokePreview::draw_stroke_immediate()` now routes final composite execution and preview copy-back through a retained local wrapper, leaving the call site with only sequence wiring. diff --git a/docs/modernization/tasks.md b/docs/modernization/tasks.md index 91f1e52..1a90969 100644 --- a/docs/modernization/tasks.md +++ b/docs/modernization/tasks.md @@ -623,6 +623,9 @@ Progress Notes: execution through a local wrapper around `execute_legacy_canvas_stroke_mix_pass_shell(...)`; the live path still owns the concrete mixer framebuffer setup and GL capability toggles. +- 2026-06-13: `Canvas::stroke_draw_mix()` now calls the retained mix-pass + executor directly instead of a local wrapper shell helper; the live path + still owns the concrete mixer framebuffer setup and GL capability toggles. - 2026-06-13: `Canvas::stroke_draw_samples()` now reuses a retained destination texture dispatch helper for the live sample path; `Canvas` still owns the concrete face textures and callback execution. diff --git a/src/canvas.cpp b/src/canvas.cpp index 160905e..9abe052 100644 --- a/src/canvas.cpp +++ b/src/canvas.cpp @@ -419,7 +419,10 @@ void Canvas::stroke_draw_mix(const glm::vec2& bb_min, const glm::vec2& bb_sz) [&] { m_mixer.unbindFramebuffer(); }); - [[maybe_unused]] const auto mix_result = execute_canvas_stroke_mix_pass_shell(mix_shell); + [[maybe_unused]] const auto mix_result = pp::panopainter::execute_legacy_canvas_stroke_mix_pass_shell( + mix_shell.setup.begin, + mix_shell.setup.end, + mix_shell.request); gl.restore(); } @@ -533,15 +536,6 @@ static void execute_canvas_draw_merge_final_plane_composite( pp::panopainter::execute_legacy_canvas_draw_merge_final_plane_composite(uniforms, execution); } -static void execute_canvas_stroke_mix_pass_shell( - const pp::panopainter::LegacyCanvasStrokeMixPassShell& shell) -{ - pp::panopainter::execute_legacy_canvas_stroke_mix_pass_shell( - shell.setup.begin, - shell.setup.end, - shell.request); -} - glm::vec4 Canvas::stroke_draw_samples( int i, std::vector& P,