diff --git a/docs/modernization/tasks.md b/docs/modernization/tasks.md index ed037d6..a9a3e5b 100644 --- a/docs/modernization/tasks.md +++ b/docs/modernization/tasks.md @@ -1058,6 +1058,32 @@ Completed Task Log: ### STR-010 - Extract Remaining Draw Merge Composite Orchestration +### STR-012 - Extract Preview Final Composite Orchestration + +Status: Ready +Score: no score movement +Debt: `DEBT-0036` +Scope: `src/node_stroke_preview.cpp`, `tests/paint_renderer/compositor_tests.cpp` + +Goal: + +Extract the remaining preview final-composite and copy-back glue so the +preview path keeps only concrete texture binding and pass ordering. + +Done Checks: + +- `NodeStrokePreview::draw_stroke_immediate()` no longer owns the final + composite and preview copy-back orchestration inline. +- Regression coverage proves final composite and preview copy order. +- `DEBT-0036` records the reduced preview final-pass surface. + +Validation: + +```powershell +ctest --preset desktop-fast --build-config Debug -R "pp_paint_renderer_compositor|pp_paint_renderer_stroke_execution" --output-on-failure +cmake --build --preset windows-msvc-default --config Debug --target PanoPainter +``` + Status: Done Score: +2 renderer boundary and OpenGL parity Debt: `DEBT-0036`