Skip to content

I20260419-0141

@vogella vogella tagged this 18 Apr 19:48
Completes the migration tracked in #3189 by adding the remaining 11
effects plus Lake:

Phase 2 (image-based):
- Wobble (bu.jpg)
- Wormhole (texture.png)
- Dancing (with light)
- Lake (ash.jpg) - reimplemented with direct pixel manipulation so
  the mirror/wave effect renders consistently on Linux, where
  GC.copyArea on image-backed GCs differed from Win32/Cocoa. Uses
  ImageData.transparentPixel for out-of-range reflection rows and a
  10 px seam between image and mirror so ash.jpg's near-black edges
  don't show as moving dark bands.

Phase 3 (complex):
- RotoZoom (tux256256.png)
- Tunnel (tunnelstonetex.png)
- Voxel (heightmap1.gif + colormap.jpg)
- Sine Scroll (font_classic_16x16.gif, Star as inner class)
- Simple Scroll
- Advanced Scroll
- Star Wars Scroll (row-wise scaling for perspective)

Polish applied across the tabs based on visual review:
- Enlarge small renders via scale-on-draw: Twirl 3x, BlockEffect 3x,
  Sky/SineScroll/Ripple 2x. Enlarge Tunnel (640x480) and Voxel
  (640x400) render buffers.
- Ripple: seed 6 ripples at startup, drop automatic ripples so the
  effect is visible without mouse input, overlay a hint telling the
  user to hover.
- BlockEffect: hold the unblocked image for ~40 frames before starting
  to blockify again.
- SimpleScroll / StarWarsScroll: credit Laurent Caron in the scrolling
  text.

Closes #3189

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Assets 2
Loading