I'm making a 2d game, where I need a resizeable, moveable rectangle outline. I'm trying to use stencil masking to do it by cutting a hole in a solid rectangle, and I thought this would help:
How can I add a transparent overlay to a UI in libGDX?
But all I get is a solid box. Here's my code:
Gdx.gl.glClear(GL_STENCIL_BUFFER_BIT);
Gdx.gl.glColorMask(false, false, false, false);
Gdx.gl.glDepthMask(false);
Gdx.gl.glEnable(GL20.GL_STENCIL_TEST);
Gdx.gl.glStencilFunc(GL20.GL_ALWAYS, 0x1, 0xffffffff);
Gdx.gl.glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE);
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
shapeRenderer.box(cubby.xpos + 5 , cubby.ypos + 5, 0, cubby.size - 10, cubby.size - 10, 0);
shapeRenderer.end();
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
Gdx.gl.glColorMask(true, true, true, true);
Gdx.gl.glDepthMask(true);
Gdx.gl.glStencilFunc(GL_NOTEQUAL, 0x1, 0xffffffff);
Gdx.gl.glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
shapeRenderer.box(cubby.xpos, cubby.ypos,0,cubby.size, cubby.size, 0);
shapeRenderer.end();
Gdx.gl.glDisable(GL20.GL_STENCIL_TEST);