diff --git a/docs/modernization/tasks.md b/docs/modernization/tasks.md index ea2e4c6..4582d7e 100644 --- a/docs/modernization/tasks.md +++ b/docs/modernization/tasks.md @@ -2021,6 +2021,34 @@ ctest --preset desktop-fast --build-config Debug -R "pp_paint_renderer_composito cmake --build --preset windows-msvc-default --config Debug --target PanoPainter ``` +### STR-046 - Extract Draw Merge Plane Iteration Orchestration + +Status: Ready +Score: no score movement +Debt: `DEBT-0036` +Scope: `src/canvas.cpp`, `src/legacy_canvas_draw_merge_services.h`, `tests/paint_renderer/compositor_tests.cpp` + +Goal: + +Move the remaining `Canvas::draw_merge()` plane iteration and branch +orchestration into a retained helper so the callsite keeps only framebuffer +setup, per-plane dispatch, and final composite gating. + +Done Checks: + +- `Canvas::draw_merge()` no longer owns the per-plane iteration and branch + orchestration inline. +- Regression coverage proves the helper preserves plane dispatch order and + final composite gating. +- `docs/modernization/debt.md` records the reduced draw-merge plane-loop + surface. + +Validation: + +```powershell +ctest --preset desktop-fast --build-config Debug -R "pp_paint_renderer_compositor|pp_paint_renderer_stroke_execution" --output-on-failure +``` + ### STR-010 - Extract Remaining Draw Merge Composite Orchestration ### STR-016 - Extract Draw Merge Layer Composite Execution