diff --git a/docs/modernization/debt.md b/docs/modernization/debt.md index edbb58c..3b66387 100644 --- a/docs/modernization/debt.md +++ b/docs/modernization/debt.md @@ -85,6 +85,10 @@ agent or engineer to remove them without reconstructing context from chat. face loop orchestration now routes through `execute_legacy_canvas_stroke_main_pass_frame_callbacks(...)`; the retained path still owns the concrete shader, sampler, and framebuffer wiring. +- 2026-06-13: DEBT-0036 was narrowed again. `Canvas::stroke_draw()` pad-face + orchestration remains retained and is next targeted for helper extraction; + pad destination dispatch already routes through a retained helper, but the + pad face loop and copy timing still live in `Canvas`. - 2026-06-13: DEBT-0036 was narrowed again. `Canvas::stroke_draw_samples()` now routes polygon triangulation, sample-point assembly, and retained destination-copy / upload / draw helper handoff through diff --git a/docs/modernization/tasks.md b/docs/modernization/tasks.md index eea7df4..c20273c 100644 --- a/docs/modernization/tasks.md +++ b/docs/modernization/tasks.md @@ -950,4 +950,33 @@ ctest --preset desktop-fast --build-config Debug -R "pp_paint_renderer_stroke_ex | Date | Task | Score | Validation | Commit | | --- | --- | ---: | --- | --- | -| 2026-06-13 | STR-007 | +1 renderer boundary and OpenGL parity | `ctest --preset desktop-fast --build-config Debug -R "pp_paint_renderer_stroke_execution" --output-on-failure`; `MSBuild.exe out\build\windows-msvc-default\tests\pp_paint_renderer_stroke_execution_tests.vcxproj /p:Configuration=Debug /p:Platform=x64` | pending | +| 2026-06-13 | STR-007 | +1 renderer boundary and OpenGL parity | `ctest --preset desktop-fast --build-config Debug -R "pp_paint_renderer_stroke_execution" --output-on-failure`; `MSBuild.exe out\build\windows-msvc-default\tests\pp_paint_renderer_stroke_execution_tests.vcxproj /p:Configuration=Debug /p:Platform=x64` | `fee09e53` | + +### STR-008 - Extract Pad Stroke Face Orchestration + +Status: Ready +Score: +1 renderer boundary and OpenGL parity +Debt: `DEBT-0036` +Scope: `src/canvas.cpp`, `src/legacy_canvas_stroke_execution_services.h`, +`tests/paint_renderer/stroke_execution_tests.cpp` + +Goal: + +Move the inline pad-stroke face execution block in `Canvas::stroke_draw()` into +a retained helper so the pad branch keeps only concrete brush-shape, texture, +and framebuffer wiring. Preserve pad-face order and copy timing. + +Done Checks: + +- `Canvas::stroke_draw()` no longer contains the inline pad-face block around + `execute_legacy_canvas_stroke_pad_faces(...)`. +- Regression coverage proves the extracted helper preserves pad-face order and + copy behavior. +- `docs/modernization/debt.md` records the reduced pad callback surface. + +Validation: + +```powershell +ctest --preset desktop-fast --build-config Debug -R "pp_paint_renderer_stroke_execution" --output-on-failure +& 'C:\Program Files\Microsoft Visual Studio\18\Community\MSBuild\Current\Bin\MSBuild.exe' out\build\windows-msvc-default\tests\pp_paint_renderer_stroke_execution_tests.vcxproj /p:Configuration=Debug /p:Platform=x64 +```