openpencil/tests/e2e
Danila Poyarkov a9a1f9ac1f
Shadow rendering performance: per-node SkPicture cache (#25)
* Replace saveLayer with MaskFilter for drop shadows

Drop shadows now draw directly with MaskFilter.MakeBlur instead of
saveLayer + ImageFilter. Eliminates per-shadow offscreen buffer
allocation, significantly improving render throughput for scenes
with many shadowed nodes.

Text shadows still use saveLayer (MaskFilter can't be applied to
text glyphs individually).

Benchmark: 50 shadow nodes render at 1.55ms/frame (scene change).

* Cache per-node SkPictures for effect rendering

Nodes with visible effects (shadows, blurs) are recorded into
individual SkPictures and replayed on subsequent scene redraws.
Only the modified node re-records; unchanged shadow nodes replay
from cache.

- MaskFilter.MakeBlur for drop shadows instead of saveLayer
- Reusable effectLayerPaint and cached ImageFilters/MaskFilters
- invalidateNodePicture() called on node update
- invalidateAllPictures() on font load; invalidateScenePicture()
  preserves node cache for scene-only invalidation
- Shadow benchmark: 50 nodes at 1.47ms/frame (scene change)

* Update changelog with shadow rendering performance improvements
2026-03-03 11:37:01 +03:00
..
create-shapes.spec.ts-snapshots Canvas rulers with selection highlight 2026-02-28 09:35:50 +03:00
effects.spec.ts-snapshots Fix effects rendering: shadows, blur, spread (#24) 2026-03-03 09:53:39 +03:00
scene-cache.spec.ts-snapshots Re-apply SkPicture scene caching with visual regression tests 2026-03-02 11:33:45 +03:00
app-menu.spec.ts Add integration tests for app menu and autosave 2026-03-01 15:26:10 +03:00
autosave.spec.ts Add integration tests for app menu and autosave 2026-03-01 15:26:10 +03:00
chat-panel.spec.ts Fix tool name extraction from UIMessage parts, add tool call e2e test 2026-03-01 11:51:38 +03:00
create-shapes.spec.ts Fix silent rendering crash, no-chrome test mode, error detection 2026-02-28 08:39:19 +03:00
effects.spec.ts Fix effects rendering: shadows, blur, spread (#24) 2026-03-03 09:53:39 +03:00
layers-panel.spec.ts Re-apply SkPicture scene caching with visual regression tests 2026-03-02 11:33:45 +03:00
perf.spec.ts Shadow rendering performance: per-node SkPicture cache (#25) 2026-03-03 11:37:01 +03:00
scene-cache.spec.ts Improve scene cache regression test for font load race 2026-03-02 15:51:02 +03:00
zoom-pan.spec.ts Add zoom/pan E2E tests and pipeline benchmark 2026-03-02 23:43:39 +03:00