private static void checkAttribute( final JCGLProgramShaderUsableType p, final Map<String, JCGLProgramAttributeType> a, final String f, final JCGLType t) { Assert.assertTrue(a.containsKey(f)); final JCGLProgramAttributeType v = a.get(f); Assert.assertTrue(v.getGLName() >= 0); Assert.assertEquals(f, v.getName()); Assert.assertEquals(t, v.getType()); Assert.assertEquals(p, v.getProgram()); }
@Test public final void testProgramLinkValidAttributesMatrices3() { final JCGLShadersType s = this.getShaders("main"); final JCGLVertexShaderType v = s.shaderCompileVertex( "attributes3", this.getShaderLines("attributes3.vert")); final JCGLFragmentShaderType f = s.shaderCompileFragment("valid0", this.getShaderLines("valid0.frag")); final JCGLProgramShaderType p = s.shaderLinkProgram("attributes3", v, Optional.empty(), f); Assert.assertEquals("attributes3", p.getName()); Assert.assertFalse(p.isDeleted()); Assert.assertTrue(p.getGLName() > 0); final Map<String, JCGLProgramAttributeType> a = p.getAttributes(); Assert.assertEquals(3L, (long) a.size()); final Set<Integer> locations = new HashSet<>(a.values().size()); for (final JCGLProgramAttributeType attr : a.values()) { final Integer id = Integer.valueOf(attr.getGLName()); Assert.assertTrue(id.intValue() >= 0); Assert.assertFalse(locations.contains(id)); locations.add(id); } JCGLShadersContract.checkAttribute( p, a, "m4", JCGLType.TYPE_FLOAT_MATRIX_3x4); JCGLShadersContract.checkAttribute( p, a, "m3", JCGLType.TYPE_FLOAT_MATRIX_3); JCGLShadersContract.checkAttribute( p, a, "m2", JCGLType.TYPE_FLOAT_MATRIX_3x2); }
name, a.getName(), Integer.valueOf(a.getGLName()), a.getType());
@Test public final void testProgramLinkValidAttributesMatrices1() { final JCGLShadersType s = this.getShaders("main"); final JCGLVertexShaderType v = s.shaderCompileVertex( "attributes2", this.getShaderLines("attributes2.vert")); final JCGLFragmentShaderType f = s.shaderCompileFragment("valid0", this.getShaderLines("valid0.frag")); final JCGLProgramShaderType p = s.shaderLinkProgram("attributes2", v, Optional.empty(), f); Assert.assertEquals("attributes2", p.getName()); Assert.assertFalse(p.isDeleted()); Assert.assertTrue(p.getGLName() > 0); final Map<String, JCGLProgramAttributeType> a = p.getAttributes(); Assert.assertEquals(3L, (long) a.size()); final Set<Integer> locations = new HashSet<>(a.values().size()); for (final JCGLProgramAttributeType attr : a.values()) { final Integer id = Integer.valueOf(attr.getGLName()); Assert.assertTrue(id.intValue() >= 0); Assert.assertFalse(locations.contains(id)); locations.add(id); } JCGLShadersContract.checkAttribute( p, a, "m4", JCGLType.TYPE_FLOAT_MATRIX_4); JCGLShadersContract.checkAttribute( p, a, "m3", JCGLType.TYPE_FLOAT_MATRIX_4x3); JCGLShadersContract.checkAttribute( p, a, "m2", JCGLType.TYPE_FLOAT_MATRIX_4x2); }
@Test public final void testProgramLinkValidAttributesMatrices4() { final JCGLShadersType s = this.getShaders("main"); final JCGLVertexShaderType v = s.shaderCompileVertex( "attributes4", this.getShaderLines("attributes4.vert")); final JCGLFragmentShaderType f = s.shaderCompileFragment("valid0", this.getShaderLines("valid0.frag")); final JCGLProgramShaderType p = s.shaderLinkProgram("attributes4", v, Optional.empty(), f); Assert.assertEquals("attributes4", p.getName()); Assert.assertFalse(p.isDeleted()); Assert.assertTrue(p.getGLName() > 0); final Map<String, JCGLProgramAttributeType> a = p.getAttributes(); Assert.assertEquals(3L, (long) a.size()); final Set<Integer> locations = new HashSet<>(a.values().size()); for (final JCGLProgramAttributeType attr : a.values()) { final Integer id = Integer.valueOf(attr.getGLName()); Assert.assertTrue(id.intValue() >= 0); Assert.assertFalse(locations.contains(id)); locations.add(id); } JCGLShadersContract.checkAttribute( p, a, "m4", JCGLType.TYPE_FLOAT_MATRIX_2x4); JCGLShadersContract.checkAttribute( p, a, "m3", JCGLType.TYPE_FLOAT_MATRIX_2x3); JCGLShadersContract.checkAttribute( p, a, "m2", JCGLType.TYPE_FLOAT_MATRIX_2); }
@Test public final void testProgramLinkValidAttributesMatrices0() { final JCGLShadersType s = this.getShaders("main"); final JCGLVertexShaderType v = s.shaderCompileVertex( "attributes1", this.getShaderLines("attributes1.vert")); final JCGLFragmentShaderType f = s.shaderCompileFragment("valid0", this.getShaderLines("valid0.frag")); final JCGLProgramShaderType p = s.shaderLinkProgram("attributes1", v, Optional.empty(), f); Assert.assertEquals("attributes1", p.getName()); Assert.assertFalse(p.isDeleted()); Assert.assertTrue(p.getGLName() > 0); final Map<String, JCGLProgramAttributeType> a = p.getAttributes(); Assert.assertEquals(3L, (long) a.size()); final Set<Integer> locations = new HashSet<>(a.values().size()); for (final JCGLProgramAttributeType attr : a.values()) { final Integer id = Integer.valueOf(attr.getGLName()); Assert.assertTrue(id.intValue() >= 0); Assert.assertFalse(locations.contains(id)); locations.add(id); } JCGLShadersContract.checkAttribute( p, a, "m4", JCGLType.TYPE_FLOAT_MATRIX_4); JCGLShadersContract.checkAttribute( p, a, "m3", JCGLType.TYPE_FLOAT_MATRIX_3); JCGLShadersContract.checkAttribute( p, a, "m2", JCGLType.TYPE_FLOAT_MATRIX_2); }
@Test public final void testProgramLinkValidAttributesMatrices2() { final JCGLShadersType s = this.getShaders("main"); final JCGLVertexShaderType v = s.shaderCompileVertex( "attributes2", this.getShaderLines("attributes2.vert")); final JCGLFragmentShaderType f = s.shaderCompileFragment("valid0", this.getShaderLines("valid0.frag")); final JCGLProgramShaderType p = s.shaderLinkProgram("attributes2", v, Optional.empty(), f); Assert.assertEquals("attributes2", p.getName()); Assert.assertFalse(p.isDeleted()); Assert.assertTrue(p.getGLName() > 0); final Map<String, JCGLProgramAttributeType> a = p.getAttributes(); Assert.assertEquals(3L, (long) a.size()); final Set<Integer> locations = new HashSet<>(a.values().size()); for (final JCGLProgramAttributeType attr : a.values()) { final Integer id = Integer.valueOf(attr.getGLName()); Assert.assertTrue(id.intValue() >= 0); Assert.assertFalse(locations.contains(id)); locations.add(id); } JCGLShadersContract.checkAttribute( p, a, "m4", JCGLType.TYPE_FLOAT_MATRIX_4); JCGLShadersContract.checkAttribute( p, a, "m3", JCGLType.TYPE_FLOAT_MATRIX_4x3); JCGLShadersContract.checkAttribute( p, a, "m2", JCGLType.TYPE_FLOAT_MATRIX_4x2); }
final Integer id = Integer.valueOf(attr.getGLName()); Assert.assertTrue(id.intValue() >= 0); Assert.assertFalse(locations.contains(id));