@Override public void onInstanceSingleArrayStart( final R2InstanceSingleType i) { this.array_objects.arrayObjectBind(i.arrayObject()); }
@Override public void onInstanceSingleArrayStart( final R2InstanceSingleType i) { this.array_objects.arrayObjectBind(i.arrayObject()); }
@Override public void onLightSingleArrayStart( final R2LightSingleReadableType i) { this.array_objects.arrayObjectBind(i.arrayObject()); }
@Override public void onLightSingleArrayStart( final R2LightSingleReadableType i) { this.array_objects.arrayObjectBind(i.arrayObject()); }
@Override public void onInstanceSingleArrayStart( final R2InstanceSingleType i) { this.array_objects.arrayObjectBind(i.arrayObject()); }
@Override public void onInstanceSingleArrayStart( final R2InstanceSingleType i) { this.array_objects.arrayObjectBind(i.arrayObject()); }
@Override public void onInstanceSingleStartArray(final R2InstanceSingleType i) { this.array_objects.arrayObjectBind(i.arrayObject()); }
@Override public <M> void onInstanceBatched( final R2MaterialOpaqueBatchedType<M> material, final R2InstanceBatchedType i) { this.shader_batched.onValidate(); this.array_objects.arrayObjectBind(i.arrayObject()); this.draw.drawElementsInstanced( JCGLPrimitives.PRIMITIVE_TRIANGLES, i.renderCount()); }
@Override public <M> void onInstanceBillboarded( final R2MaterialOpaqueBillboardedType<M> material, final R2InstanceBillboardedType i) { this.shader_billboarded.onValidate(); this.array_objects.arrayObjectBind(i.arrayObject()); this.draw.draw(JCGLPrimitives.PRIMITIVE_POINTS, 0, i.enabledCount()); }
@Override public <M> void onInstanceBatched( final R2MaterialDepthBatchedType<M> material, final R2InstanceBatchedType i) { material.shader().onValidate(); this.array_objects.arrayObjectBind(i.arrayObject()); this.draw.drawElementsInstanced( JCGLPrimitives.PRIMITIVE_TRIANGLES, i.renderCount()); }
@Override public <M> void onInstanceBatched( final R2MaterialOpaqueBatchedType<M> material, final R2InstanceBatchedType i) { final R2ShaderInstanceBatchedUsableType<M> s = material.shader(); s.onValidate(); this.array_objects.arrayObjectBind(i.arrayObject()); this.draw.drawElementsInstanced( JCGLPrimitives.PRIMITIVE_TRIANGLES, i.renderCount()); }
@Override public <M> void onInstanceBillboarded( final R2MaterialOpaqueBillboardedType<M> material, final R2InstanceBillboardedType i) { final R2ShaderInstanceBillboardedUsableType<M> s = material.shader(); s.onValidate(); this.array_objects.arrayObjectBind(i.arrayObject()); this.draw.draw(JCGLPrimitives.PRIMITIVE_POINTS, 0, i.enabledCount()); }
@Override public <M> void onInstanceBatched( final R2MaterialDepthBatchedType<M> material, final R2InstanceBatchedType i) { material.shader().onValidate(); this.array_objects.arrayObjectBind(i.arrayObject()); this.draw.drawElementsInstanced( JCGLPrimitives.PRIMITIVE_TRIANGLES, i.renderCount()); }
@Override public void onRender(final JCGLInterfaceGL33Type g) { final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLClearType g_c = g.getClear(); final JCGLDrawType g_d = g.getDraw(); final JCGLShadersType g_sh = g.getShaders(); /** * Clear the window. */ g_c.clear(this.clear); /** * Activate the program, bind the created array object, draw a triangle. */ g_sh.shaderActivateProgram(this.program); g_ao.arrayObjectBind(this.array_object); g_d.drawElements(JCGLPrimitives.PRIMITIVE_TRIANGLES); g_ao.arrayObjectUnbind(); g_sh.shaderDeactivateProgram(); }
@Test public final void testArrayBindDeleted() { final Interfaces i = this.getInterfaces("main"); final JCGLArrayBuffersType ga = i.getArrayBuffers(); final JCGLArrayObjectsType go = i.getArrayObjects(); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final JCGLArrayObjectBuilderType b = go.arrayObjectNewBuilder(); Assert.assertTrue(b.getMaximumVertexAttributes() >= 16); b.setAttributeFloatingPoint( 0, a, 4, JCGLScalarType.TYPE_FLOAT, 16, 0L, false); final JCGLArrayObjectType ai = go.arrayObjectAllocate(b); Assert.assertEquals(ai, go.arrayObjectGetCurrentlyBound()); go.arrayObjectDelete(ai); this.expected.expect(JCGLExceptionDeleted.class); go.arrayObjectBind(ai); Assert.fail(); }
@Test public final void testArrayBindDeleted() { final Interfaces i = this.getInterfaces("main"); final JCGLArrayBuffersType ga = i.getArrayBuffers(); final JCGLArrayObjectsType go = i.getArrayObjects(); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final JCGLArrayObjectBuilderType b = go.arrayObjectNewBuilder(); Assert.assertTrue(b.getMaximumVertexAttributes() >= 16); b.setAttributeFloatingPoint( 0, a, 4, JCGLScalarType.TYPE_FLOAT, 16, 0L, false); final JCGLArrayObjectType ai = go.arrayObjectAllocate(b); Assert.assertEquals(ai, go.arrayObjectGetCurrentlyBound()); go.arrayObjectDelete(ai); this.expected.expect(JCGLExceptionDeleted.class); go.arrayObjectBind(ai); Assert.fail(); }
@Test public final void testArrayBindDeleteBindPreserves() { final Interfaces i = this.getInterfaces("main"); final JCGLArrayBuffersType ga = i.getArrayBuffers(); final JCGLArrayObjectsType go = i.getArrayObjects(); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final JCGLArrayObjectBuilderType b = go.arrayObjectNewBuilder(); Assert.assertTrue(b.getMaximumVertexAttributes() >= 16); b.setAttributeFloatingPoint( 0, a, 4, JCGLScalarType.TYPE_FLOAT, 16, 0L, false); final JCGLArrayObjectType a0 = go.arrayObjectAllocate(b); final JCGLArrayObjectType a1 = go.arrayObjectAllocate(b); go.arrayObjectBind(a0); Assert.assertEquals(a0, go.arrayObjectGetCurrentlyBound()); go.arrayObjectDelete(a1); Assert.assertEquals(a0, go.arrayObjectGetCurrentlyBound()); }
@Test public final void testArrayBindDeleteBindPreserves() { final Interfaces i = this.getInterfaces("main"); final JCGLArrayBuffersType ga = i.getArrayBuffers(); final JCGLArrayObjectsType go = i.getArrayObjects(); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final JCGLArrayObjectBuilderType b = go.arrayObjectNewBuilder(); Assert.assertTrue(b.getMaximumVertexAttributes() >= 16); b.setAttributeFloatingPoint( 0, a, 4, JCGLScalarType.TYPE_FLOAT, 16, 0L, false); final JCGLArrayObjectType a0 = go.arrayObjectAllocate(b); final JCGLArrayObjectType a1 = go.arrayObjectAllocate(b); go.arrayObjectBind(a0); Assert.assertEquals(a0, go.arrayObjectGetCurrentlyBound()); go.arrayObjectDelete(a1); Assert.assertEquals(a0, go.arrayObjectGetCurrentlyBound()); }
@Test public final void testArrayBindDeleteBind() { final Interfaces i = this.getInterfaces("main"); final JCGLArrayBuffersType ga = i.getArrayBuffers(); final JCGLArrayObjectsType go = i.getArrayObjects(); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final JCGLArrayObjectBuilderType b = go.arrayObjectNewBuilder(); Assert.assertTrue(b.getMaximumVertexAttributes() >= 16); b.setAttributeFloatingPoint( 0, a, 4, JCGLScalarType.TYPE_FLOAT, 16, 0L, false); final JCGLArrayObjectType ai = go.arrayObjectAllocate(b); go.arrayObjectBind(ai); Assert.assertEquals(ai, go.arrayObjectGetCurrentlyBound()); go.arrayObjectDelete(ai); Assert.assertEquals( go.arrayObjectGetDefault(), go.arrayObjectGetCurrentlyBound()); }
@Test public final void testArrayBindDeleteBind() { final Interfaces i = this.getInterfaces("main"); final JCGLArrayBuffersType ga = i.getArrayBuffers(); final JCGLArrayObjectsType go = i.getArrayObjects(); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final JCGLArrayObjectBuilderType b = go.arrayObjectNewBuilder(); Assert.assertTrue(b.getMaximumVertexAttributes() >= 16); b.setAttributeFloatingPoint( 0, a, 4, JCGLScalarType.TYPE_FLOAT, 16, 0L, false); final JCGLArrayObjectType ai = go.arrayObjectAllocate(b); go.arrayObjectBind(ai); Assert.assertEquals(ai, go.arrayObjectGetCurrentlyBound()); go.arrayObjectDelete(ai); Assert.assertEquals( go.arrayObjectGetDefault(), go.arrayObjectGetCurrentlyBound()); }