private static void configureStencil( final JCGLInterfaceGL33Type g, final JCGLRenderStateType r) { final JCGLStencilBuffersType g_s = g.stencilBuffers(); final JCGLStencilStateType s = r.stencilState(); if (s.stencilStrict()) { if (s.stencilEnabled()) { g_s.stencilBufferEnable(); configureStencilActual(g_s, s); } else { g_s.stencilBufferDisable(); } } else { if (g_s.stencilBufferGetBits() > 0) { if (s.stencilEnabled()) { configureStencilActual(g_s, s); g_s.stencilBufferEnable(); } else { g_s.stencilBufferDisable(); } } } }
g_stencil.stencilBufferGetFunctionFront()); Assert.assertEquals( 0L, (long) g_stencil.stencilBufferGetFunctionReferenceFront()); Assert.assertEquals( 0xffffffffL, Integer.toUnsignedLong(g_stencil.stencilBufferGetFunctionMaskFront())); g_stencil.stencilBufferGetFunctionBack()); Assert.assertEquals( 0L, (long) g_stencil.stencilBufferGetFunctionReferenceBack()); Assert.assertEquals( 0xffffffffL, Integer.toUnsignedLong(g_stencil.stencilBufferGetFunctionMaskBack())); g_stencil.stencilBufferFunction( JCGLFaceSelection.FACE_FRONT_AND_BACK, f, 1, 2); f, g_stencil.stencilBufferGetFunctionFront()); Assert.assertEquals( 1L, (long) g_stencil.stencilBufferGetFunctionReferenceFront()); Assert.assertEquals( 2L, (long) g_stencil.stencilBufferGetFunctionMaskFront()); f, g_stencil.stencilBufferGetFunctionBack()); Assert.assertEquals( 1L, (long) g_stencil.stencilBufferGetFunctionReferenceBack()); Assert.assertEquals( 2L, (long) g_stencil.stencilBufferGetFunctionMaskBack());
private static void configureStencilActual( final JCGLStencilBuffersType g_s, final JCGLStencilStateType s) { g_s.stencilBufferOperation( JCGLFaceSelection.FACE_FRONT, s.operationStencilFailFront(), s.operationDepthFailFront(), s.operationPassFront()); g_s.stencilBufferOperation( JCGLFaceSelection.FACE_BACK, s.operationStencilFailBack(), s.operationDepthFailBack(), s.operationPassBack()); g_s.stencilBufferMask( JCGLFaceSelection.FACE_FRONT, s.writeMaskFrontFaces()); g_s.stencilBufferMask( JCGLFaceSelection.FACE_BACK, s.writeMaskBackFaces()); g_s.stencilBufferFunction( JCGLFaceSelection.FACE_FRONT, s.testFunctionFront(), s.testReferenceFront(), s.testMaskFront()); g_s.stencilBufferFunction( JCGLFaceSelection.FACE_BACK, s.testFunctionBack(), s.testReferenceBack(), s.testMaskBack()); }
@Test public final void testStencilTestEnable() { final Interfaces i = this.getInterfaces("main", 24, 8); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); Assert.assertFalse(g_stencil.stencilBufferIsEnabled()); g_stencil.stencilBufferEnable(); Assert.assertTrue(g_stencil.stencilBufferIsEnabled()); g_stencil.stencilBufferEnable(); Assert.assertTrue(g_stencil.stencilBufferIsEnabled()); g_stencil.stencilBufferDisable(); Assert.assertFalse(g_stencil.stencilBufferIsEnabled()); g_stencil.stencilBufferDisable(); Assert.assertFalse(g_stencil.stencilBufferIsEnabled()); }
@Test public final void testStencilMask() { final Interfaces i = this.getInterfaces("main", 24, 8); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); Assert.assertEquals( 0xffffffffL, Integer.toUnsignedLong(g_stencil.stencilBufferGetMaskFrontFaces())); Assert.assertEquals( 0xffffffffL, Integer.toUnsignedLong(g_stencil.stencilBufferGetMaskBackFaces())); g_stencil.stencilBufferMask(JCGLFaceSelection.FACE_FRONT, 23); g_stencil.stencilBufferMask(JCGLFaceSelection.FACE_BACK, 31); Assert.assertEquals(23L, (long) g_stencil.stencilBufferGetMaskFrontFaces()); Assert.assertEquals(31L, (long) g_stencil.stencilBufferGetMaskBackFaces()); g_stencil.stencilBufferMask(JCGLFaceSelection.FACE_FRONT_AND_BACK, 7); Assert.assertEquals(7L, (long) g_stencil.stencilBufferGetMaskFrontFaces()); Assert.assertEquals(7L, (long) g_stencil.stencilBufferGetMaskBackFaces()); }
g_stencil.stencilBufferGetOperationDepthFailBack()); Assert.assertEquals( JCGLStencilOperation.STENCIL_OP_KEEP, g_stencil.stencilBufferGetOperationPassBack()); Assert.assertEquals( JCGLStencilOperation.STENCIL_OP_KEEP, g_stencil.stencilBufferGetOperationStencilFailBack()); g_stencil.stencilBufferOperation( JCGLFaceSelection.FACE_BACK, op, op, op); op, g_stencil.stencilBufferGetOperationDepthFailBack()); Assert.assertEquals( op, g_stencil.stencilBufferGetOperationPassBack()); Assert.assertEquals( op, g_stencil.stencilBufferGetOperationStencilFailBack()); g_stencil.stencilBufferGetOperationDepthFailFront()); Assert.assertEquals( JCGLStencilOperation.STENCIL_OP_KEEP, g_stencil.stencilBufferGetOperationPassFront()); Assert.assertEquals( JCGLStencilOperation.STENCIL_OP_KEEP, g_stencil.stencilBufferGetOperationStencilFailFront());
g_st.stencilBufferEnable(); g_st.stencilBufferOperation( JCGLFaceSelection.FACE_FRONT_AND_BACK, JCGLStencilOperation.STENCIL_OP_KEEP, g_st.stencilBufferMask( JCGLFaceSelection.FACE_FRONT_AND_BACK, R2Stencils.ALLOW_BIT); g_st.stencilBufferFunction( JCGLFaceSelection.FACE_FRONT_AND_BACK, JCGLStencilFunction.STENCIL_ALWAYS, g_st.stencilBufferFunction( JCGLFaceSelection.FACE_FRONT_AND_BACK, JCGLStencilFunction.STENCIL_ALWAYS,
g_st.stencilBufferFunction( JCGLFaceSelection.FACE_FRONT_AND_BACK, JCGLStencilFunction.STENCIL_ALWAYS, g_st.stencilBufferFunction( JCGLFaceSelection.FACE_FRONT_AND_BACK, JCGLStencilFunction.STENCIL_ALWAYS,
@Test public final void testNoStencilNoFramebufferOperation() { final Interfaces i = this.getInterfaces("main", 0, 0); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); this.expected.expect(JCGLExceptionNoStencilBuffer.class); g_stencil.stencilBufferOperation( JCGLFaceSelection.FACE_BACK, JCGLStencilOperation.STENCIL_OP_KEEP, JCGLStencilOperation.STENCIL_OP_KEEP, JCGLStencilOperation.STENCIL_OP_KEEP); }
@Test public final void testNoStencilNoFramebufferMask() { final Interfaces i = this.getInterfaces("main", 0, 0); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); this.expected.expect(JCGLExceptionNoStencilBuffer.class); g_stencil.stencilBufferMask(JCGLFaceSelection.FACE_BACK, 23); }
@Test public final void testNoStencilNoFramebufferTestEnable() { final Interfaces i = this.getInterfaces("main", 0, 0); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); this.expected.expect(JCGLExceptionNoStencilBuffer.class); g_stencil.stencilBufferEnable(); }
@Test public final void testNoStencilNoFramebufferTestDisable() { final Interfaces i = this.getInterfaces("main", 0, 0); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); this.expected.expect(JCGLExceptionNoStencilBuffer.class); g_stencil.stencilBufferDisable(); }
@Test public final void testStencilClear() { final Interfaces i = this.getInterfaces("main", 24, 8); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); g_stencil.stencilBufferClear(0xff); }
@Test public final void testStencilGetBitsFramebuffer0() { final Interfaces i = this.getInterfaces("main", 0, 0); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); final JCGLFramebuffersType g_fb = i.getFramebuffers(); final JCGLFramebufferType fb = stencillessFramebuffer(g_fb, i.getTextures()); Assert.assertTrue(g_fb.framebufferDrawIsBound(fb)); Assert.assertEquals(0L, (long) g_stencil.stencilBufferGetBits()); }
g_stencil.stencilBufferGetOperationDepthFailFront()); Assert.assertEquals( JCGLStencilOperation.STENCIL_OP_KEEP, g_stencil.stencilBufferGetOperationPassFront()); Assert.assertEquals( JCGLStencilOperation.STENCIL_OP_KEEP, g_stencil.stencilBufferGetOperationStencilFailFront()); g_stencil.stencilBufferOperation( JCGLFaceSelection.FACE_FRONT, op, op, op); op, g_stencil.stencilBufferGetOperationDepthFailFront()); Assert.assertEquals( op, g_stencil.stencilBufferGetOperationPassFront()); Assert.assertEquals( op, g_stencil.stencilBufferGetOperationStencilFailFront()); g_stencil.stencilBufferGetOperationDepthFailBack()); Assert.assertEquals( JCGLStencilOperation.STENCIL_OP_KEEP, g_stencil.stencilBufferGetOperationPassBack()); Assert.assertEquals( JCGLStencilOperation.STENCIL_OP_KEEP, g_stencil.stencilBufferGetOperationStencilFailBack());
@Test public final void testStencilTestEnable() { final Interfaces i = this.getInterfaces("main", 24, 8); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); Assert.assertFalse(g_stencil.stencilBufferIsEnabled()); g_stencil.stencilBufferEnable(); Assert.assertTrue(g_stencil.stencilBufferIsEnabled()); g_stencil.stencilBufferEnable(); Assert.assertTrue(g_stencil.stencilBufferIsEnabled()); g_stencil.stencilBufferDisable(); Assert.assertFalse(g_stencil.stencilBufferIsEnabled()); g_stencil.stencilBufferDisable(); Assert.assertFalse(g_stencil.stencilBufferIsEnabled()); }
@Test public final void testStencilMask() { final Interfaces i = this.getInterfaces("main", 24, 8); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); Assert.assertEquals( 0xffffffffL, Integer.toUnsignedLong(g_stencil.stencilBufferGetMaskFrontFaces())); Assert.assertEquals( 0xffffffffL, Integer.toUnsignedLong(g_stencil.stencilBufferGetMaskBackFaces())); g_stencil.stencilBufferMask(JCGLFaceSelection.FACE_FRONT, 23); g_stencil.stencilBufferMask(JCGLFaceSelection.FACE_BACK, 31); Assert.assertEquals(23L, (long) g_stencil.stencilBufferGetMaskFrontFaces()); Assert.assertEquals(31L, (long) g_stencil.stencilBufferGetMaskBackFaces()); g_stencil.stencilBufferMask(JCGLFaceSelection.FACE_FRONT_AND_BACK, 7); Assert.assertEquals(7L, (long) g_stencil.stencilBufferGetMaskFrontFaces()); Assert.assertEquals(7L, (long) g_stencil.stencilBufferGetMaskBackFaces()); }
@Test public final void testNoStencilNoFramebufferFunction() { final Interfaces i = this.getInterfaces("main", 0, 0); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); this.expected.expect(JCGLExceptionNoStencilBuffer.class); g_stencil.stencilBufferFunction( JCGLFaceSelection.FACE_BACK, JCGLStencilFunction.STENCIL_ALWAYS, 0, 0); }
@Test public final void testNoStencilNoFramebufferOperation() { final Interfaces i = this.getInterfaces("main", 0, 0); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); this.expected.expect(JCGLExceptionNoStencilBuffer.class); g_stencil.stencilBufferOperation( JCGLFaceSelection.FACE_BACK, JCGLStencilOperation.STENCIL_OP_KEEP, JCGLStencilOperation.STENCIL_OP_KEEP, JCGLStencilOperation.STENCIL_OP_KEEP); }
@Test public final void testNoStencilNoFramebufferMask() { final Interfaces i = this.getInterfaces("main", 0, 0); final JCGLStencilBuffersType g_stencil = i.getStencilBuffers(); this.expected.expect(JCGLExceptionNoStencilBuffer.class); g_stencil.stencilBufferMask(JCGLFaceSelection.FACE_BACK, 23); }