v2.3.6-beta — Collapse idle canvases (≈ -150 MB on 2-monitor setups)
Pre-releaseMemory-footprint optimisation pass.
Changed — idle canvases collapse to 1×1
The wallpaper page hosts four full-viewport canvases:
- ${'
'}#bars-canvas${''} — glow grid in canvas-renderer mode - ${'
'}#ambient-canvas${''} — snow / rain / sparks / aurora / storm / … - ${'
'}#pixelfx-canvas${''} — trail / hover-glow / click ripple / water - ${'
'}#audioglow-canvas${''} — pulse / spectrum bars / waveform
Pre-v2.3.6-beta every one of them kept a viewport-sized backing buffer even when the effect was off. At 5120×1440 × DPR=1 × 4 bytes per pixel that's ~30 MB per canvas → ≈ 100 MB resident per wallpaper instance with three of the four idle. Multi-monitor setups doubled or quadrupled that because each monitor runs its own WebView2 instance.
Each effect's ${''}stop()${''} (plus the canvas-off branch in ${''}_syncGridCanvasVisibility()${''} for the bars canvas) now sets ${''}canvas.width = canvas.height = 1${''} after clearing. ${''}start()${''} already calls ${''}resize()${''} to set the canvas back to full viewport on re-enable, so the trade-off is one allocation per off→on transition.
Realistic ceiling on a 2-monitor 5120×1440 setup with three of the four effects idle: ≈ -150 MB RAM.
Upgrade
Wallpaper bundle re-import required. Tray → Re-import wallpaper bundles.
Beta — no winget submission, GitHub Releases only.