Mascara de recorte

Hola, necesito crear un programa como el del video que dejo a continuación, se trata de 2 imágenes superpuestas, con una máscara de recorte en forma circular manejada por el mouse, que muestra el exterior de una imagen, y el interior del otro. Y no estoy seguro de si es posible hacerlo, ¡gracias!

https://www.youtube.com/watch?v=RorkBlgz0vQ&feature=youtu.be&ab_channel=MatiasPesce

De momento podría insertar las 2 imágenes y crear la elipse que sigue el mouse, lo único que falta es que la elipse funcione como una máscara de recorte:

PImage fondo1, fondo2;
PImage mask;

void setup(){
  
  size(1920, 1080);
  
  fondo1 = loadImage("1.jpg");
  fondo2 = loadImage("2.jpg");
  
  frameRate(60);
}

void draw(){
  
  background(fondo2);
  image(fondo1, 0, 0);
  
  ellipse(mouseX, mouseY, 200, 200);
  noStroke();
}

Hola!quiero darte ayuda pero el video fue eliminado…creo que tengo un codigo que puede ser tu solucion,decime necesitas ver en tu PImage mask la imagen resultante del proceso de mascara circular entre las imagenes fondo1 y fondo2?

Hola aqui va el codigo:

PGraphics maskImage;
PImage fondo1,fondo2;

void setup(){
size(1920,1080);
fondo1=loadImage(“1.jpg”);
fondo2=loadImage(“2.jpg”);
maskImage=createGraphics(1920,1080);
}

void draw(){
background(0);
image(fondo2,0,0);
//creamos la mascara circular
maskImage.beginDraw();
maskImage.background(0);
maskImage.ellipse(mouseX,mouseY,200,200);
maskImage.endDraw();
//aplicamos la mascara
fondo1.mask(maskImage);
//mostramos el proceso como imagen
Image(fondo1,0,0);
}