Ways to manipulate or dynamically shift/mask images

I have been into demo scenes as of recently.
(My favorite one being Titan - Overdrive 2 for the Sega Megadrive / Genesis).
As of late, I have been thinking about what should be my next small project should be for my little Learning Series of trinkets.

For my next one, I want to figure out how to do this -> Earthbound Battle Backgrounds but also render a masked image in its own circle radius. (Think of it like a image inside of a circle moving around but not going outside of the circle going into the background).

As I was researching this I came across a problem. How am I supposed to render something that doesn't exist on screen? More importantly, How do I even handle manipulating such a large scale effect on a device like this without performance hiccups.

I wanted to see if anyone has came up with ways to do this.

You can do this with pattern and mask. The pattern will limit you to 8x8 repeating pattern.

See https://devforum.play.date/t/matts-prototypes/826/3 where I do it - without mask - by drawing on a single line rectangle to get the classic "marching ants" effect.

If you need a larger repeating pattern then you can use an image table and mask.

1 Like

Ooo, this looks extremely interesting!

I am thinking about drawing and offsetting an image 1 pixel at a time to do the wavy effects. Then playdate.update().
Not sure if this is the best solution but its a method I came up with while day dreaming at my job.