@Test public final void testProgramActivateDeactivateIdentity() { final JCGLShadersType s = this.getShaders("main"); final JCGLVertexShaderType v = s.shaderCompileVertex("valid0", this.getShaderLines("valid0.vert")); final JCGLFragmentShaderType f = s.shaderCompileFragment("valid0", this.getShaderLines("valid0.frag")); final JCGLProgramShaderType p = s.shaderLinkProgram("valid0", v, Optional.empty(), f); s.shaderActivateProgram(p); Assert.assertEquals(Optional.of(p), s.shaderActivatedProgram()); s.shaderDeactivateProgram(); Assert.assertEquals(Optional.empty(), s.shaderActivatedProgram()); s.shaderActivateProgram(p); Assert.assertEquals(Optional.of(p), s.shaderActivatedProgram()); s.shaderDeactivateProgram(); Assert.assertEquals(Optional.empty(), s.shaderActivatedProgram()); }
@Test public final void testProgramActivateDeactivateIdentity() { final JCGLShadersType s = this.getShaders("main"); final JCGLVertexShaderType v = s.shaderCompileVertex("valid0", this.getShaderLines("valid0.vert")); final JCGLFragmentShaderType f = s.shaderCompileFragment("valid0", this.getShaderLines("valid0.frag")); final JCGLProgramShaderType p = s.shaderLinkProgram("valid0", v, Optional.empty(), f); s.shaderActivateProgram(p); Assert.assertEquals(Optional.of(p), s.shaderActivatedProgram()); s.shaderDeactivateProgram(); Assert.assertEquals(Optional.empty(), s.shaderActivatedProgram()); s.shaderActivateProgram(p); Assert.assertEquals(Optional.of(p), s.shaderActivatedProgram()); s.shaderDeactivateProgram(); Assert.assertEquals(Optional.empty(), s.shaderActivatedProgram()); }
@Test public final void testProgramDeleteActivated() { final JCGLShadersType s = this.getShaders("main"); final JCGLVertexShaderType v = s.shaderCompileVertex("valid0", this.getShaderLines("valid0.vert")); final JCGLFragmentShaderType f = s.shaderCompileFragment("valid0", this.getShaderLines("valid0.frag")); final JCGLProgramShaderType p = s.shaderLinkProgram("valid0", v, Optional.empty(), f); s.shaderActivateProgram(p); Assert.assertEquals(Optional.of(p), s.shaderActivatedProgram()); s.shaderDeleteProgram(p); Assert.assertEquals(Optional.empty(), s.shaderActivatedProgram()); }
@Test public final void testProgramDeleteActivated() { final JCGLShadersType s = this.getShaders("main"); final JCGLVertexShaderType v = s.shaderCompileVertex("valid0", this.getShaderLines("valid0.vert")); final JCGLFragmentShaderType f = s.shaderCompileFragment("valid0", this.getShaderLines("valid0.frag")); final JCGLProgramShaderType p = s.shaderLinkProgram("valid0", v, Optional.empty(), f); s.shaderActivateProgram(p); Assert.assertEquals(Optional.of(p), s.shaderActivatedProgram()); s.shaderDeleteProgram(p); Assert.assertEquals(Optional.empty(), s.shaderActivatedProgram()); }
@Test public final void testProgramActivateSharedContext() { final JCGLSharedContextPair<JCGLShadersType> cp = this.getShadersSharedWith("main", "alt"); final JCGLContextType c0 = cp.getMasterContext(); final JCGLShadersType s0 = cp.getMasterValue(); final JCGLContextType c1 = cp.getSlaveContext(); final JCGLShadersType s1 = cp.getSlaveValue(); Assert.assertTrue(c0.contextIsCurrent()); Assert.assertFalse(c1.contextIsCurrent()); final JCGLGeometryShaderType g = s0.shaderCompileGeometry("valid0", this.getShaderLines("valid0.geom")); final JCGLVertexShaderType v = s0.shaderCompileVertex("valid0", this.getShaderLines("valid0.vert")); final JCGLFragmentShaderType f = s0.shaderCompileFragment("valid0", this.getShaderLines("valid0.frag")); final JCGLProgramShaderType p = s0.shaderLinkProgram("valid0", v, Optional.of(g), f); c0.contextReleaseCurrent(); c1.contextMakeCurrent(); s1.shaderActivateProgram(p); Assert.assertEquals(Optional.of(p), s1.shaderActivatedProgram()); }
@Test public final void testProgramActivateSharedContext() { final JCGLSharedContextPair<JCGLShadersType> cp = this.getShadersSharedWith("main", "alt"); final JCGLContextType c0 = cp.getMasterContext(); final JCGLShadersType s0 = cp.getMasterValue(); final JCGLContextType c1 = cp.getSlaveContext(); final JCGLShadersType s1 = cp.getSlaveValue(); Assert.assertTrue(c0.contextIsCurrent()); Assert.assertFalse(c1.contextIsCurrent()); final JCGLGeometryShaderType g = s0.shaderCompileGeometry("valid0", this.getShaderLines("valid0.geom")); final JCGLVertexShaderType v = s0.shaderCompileVertex("valid0", this.getShaderLines("valid0.vert")); final JCGLFragmentShaderType f = s0.shaderCompileFragment("valid0", this.getShaderLines("valid0.frag")); final JCGLProgramShaderType p = s0.shaderLinkProgram("valid0", v, Optional.of(g), f); c0.contextReleaseCurrent(); c1.contextMakeCurrent(); s1.shaderActivateProgram(p); Assert.assertEquals(Optional.of(p), s1.shaderActivatedProgram()); }