Path , shape and image blending

I am getting started with blending and i am not clear in some aspects of it. I have 3 layers. The first layer is a image at the bottom. A solid rectangle is laid on top of it on the 2nd level. A path is overlaid on the 3rd layer. I want to blend these three layers so that the path completely exposes the image at the first layer. I am not sure how to achieve this.

void ofApp::draw()
{
    ofImage img_1;
    ofRectangle rect_1;
    ofPath path_1;

    img_1.loadImage("bg.png");
    rect_1.set(200, 200, 400, 300);
    path_1.arc(0, 0, 50, 50, 30, 120);

    ofEnableBlendMode(OF_BLENDMODE_ALPHA);
    
    ofSetColor(255, 255, 255, 255);
    img_1.draw(0, 0);
    
    ofSetColor(0, 128, 0, 255);
    ofRect(rect_1);
    
    ofEnableBlendMode(OF_BLENDMODE_SUBTRACT);
    path_1.setFillColor(ofColor(255, 255, 255, 255));
    path_1.draw(mouseX, mouseY);
    
    ofDisableBlendMode();
}

I want to make the arc transparent and the stadium visible in the arc. Any ideas ?

if you draw the arc in the same path as the rect it’ll make a hole in it, which is what i think you need. it’s not really blending but rather creating a shape with a whole in it with that shape:

//.h
ofPath rect_1;
ofImage img_1;

//setup
rect_1.rectangle(200, 200, 400, 300);
rect_1.moveTo(0,0);
rect_1.arc(0, 0, 50, 50, 30, 120);
rect_1.setFillColor(0, 128, 0);
img_1.loadImage("bg.png");

//draw
img.draw(0,0)
rect1.draw()

if you want to move the arc you can just recreate the path every frame

Thanks Arturo

I get the idea.