I'm trying to mask a background image that is smaller than the mask. and the space between the background and mask appears black.
This is the code I'm using:
batch.end();
batch.begin();
Gdx.gl20.glColorMask(false, false, false, true);
batch.setBlendFunction(GL20.GL_ONE, GL20.GL_ZERO);
batch.draw(mask, getX(), getY());
batch.flush();
Gdx.gl20.glColorMask(true, true, true, true);
batch.setBlendFunction(GL20.GL_DST_ALPHA, GL20.GL_ONE_MINUS_DST_ALPHA);
batch.draw(texture, getX(), getY());
batch.flush();
batch.setBlendFunction(GL20.GL_SRC_ALPHA,GL20.GL_ONE_MINUS_SRC_ALPHA);
batch.end();
batch.begin();
I tried all kind function combinations without any success. probably i'm missing something.
Update
Attaching chart that I build of all possible (relevant) results of src and dst blending function. Fortunately none of the below is working, and as I guessed there is something more need to be done in order to achieve the result.
Gdx.gl20.glColorMask(true, true, true, true);
batch.setBlendFunction(src_func, dst_func);
batch.draw(texture, getX(), getY());