@Override public void delete(final JCGLInterfaceGL33Type g) throws R2Exception { if (!this.isDeleted()) { try { LOG.debug("delete"); final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); g_ao.arrayObjectDelete(this.array_object); g_ab.arrayBufferDelete(this.array); g_ib.indexBufferDelete(this.index); } finally { this.deleted = true; } } }
@Override public void delete(final JCGLInterfaceGL33Type g) throws R2Exception { if (!this.isDeleted()) { try { LOG.debug("delete"); final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); g_ao.arrayObjectDelete(this.array_object); g_ab.arrayBufferDelete(this.array); g_ib.indexBufferDelete(this.index); } finally { this.deleted = true; } } }
@Override public void delete(final JCGLInterfaceGL33Type g) throws R2Exception { if (!this.isDeleted()) { g.getArrayBuffers().arrayBufferDelete(this.array_buffer); g.getArrayObjects().arrayObjectDelete(this.array_object); g.getIndexBuffers().indexBufferDelete(this.index_buffer); } }
@Override public void delete(final JCGLInterfaceGL33Type g) throws R2Exception { if (!this.isDeleted()) { g.getArrayBuffers().arrayBufferDelete(this.array_buffer); g.getArrayObjects().arrayObjectDelete(this.array_object); g.getIndexBuffers().indexBufferDelete(this.index_buffer); } }
@Override public void onFinish(final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLShadersType g_sh = g.getShaders(); /** * Delete everything. */ g_ib.indexBufferDelete(this.index_buffer); g_ab.arrayBufferDelete(this.array_buffer); g_ao.arrayObjectDelete(this.array_object); g_sh.shaderDeleteProgram(this.program); } }
@Override public void onFinish(final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLShadersType g_sh = g.getShaders(); /** * Delete everything. */ g_ib.indexBufferDelete(this.index_buffer); g_ab.arrayBufferDelete(this.array_buffer); g_ao.arrayObjectDelete(this.array_object); g_sh.shaderDeleteProgram(this.program); } }
@Override public void delete(final JCGLInterfaceGL33Type g) throws R2Exception { NullCheck.notNull(g); if (!this.isDeleted()) { final JCGLArrayBuffersType ga = g.getArrayBuffers(); final JCGLArrayObjectsType go = g.getArrayObjects(); final JCGLIndexBuffersType gi = g.getIndexBuffers(); ga.arrayBufferDelete(this.array_buffer); gi.indexBufferDelete(this.index_buffer); go.arrayObjectDelete(this.array_object); } }
@Override public void onFinish(final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLShadersType g_sh = g.getShaders(); /** * Delete everything. */ g_ib.indexBufferDelete(this.index_buffer); g_ab.arrayBufferDelete(this.array_buffer); g_ao.arrayObjectDelete(this.array_object); g_sh.shaderDeleteProgram(this.program); } }
@Override public void onFinish(final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLShadersType g_sh = g.getShaders(); /** * Delete everything. */ g_ib.indexBufferDelete(this.index_buffer); g_ab.arrayBufferDelete(this.array_buffer); g_ao.arrayObjectDelete(this.array_object); g_sh.shaderDeleteProgram(this.program); } }
@Override public void onFinish(final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLShadersType g_sh = g.getShaders(); /** * Delete everything. */ g_ib.indexBufferDelete(this.index_buffer); g_ab.arrayBufferDelete(this.array_buffer); g_ao.arrayObjectDelete(this.array_object); g_sh.shaderDeleteProgram(this.program); } }
@Override public void onFinish(final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLShadersType g_sh = g.getShaders(); /** * Delete everything. */ g_ib.indexBufferDelete(this.index_buffer); g_ab.arrayBufferDelete(this.array_buffer); g_ao.arrayObjectDelete(this.array_object); g_sh.shaderDeleteProgram(this.program); } }
@Override public void onFinish(final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLShadersType g_sh = g.getShaders(); /** * Delete everything. */ g_ib.indexBufferDelete(this.index_buffer); g_ab.arrayBufferDelete(this.array_buffer); g_ao.arrayObjectDelete(this.array_object); g_sh.shaderDeleteProgram(this.program); } }
@Override public void onFinish() { final JCGLArrayBuffersType g_ab = this.g.getArrayBuffers(); final JCGLIndexBuffersType g_ib = this.g.getIndexBuffers(); if (!this.errors.isEmpty()) { if (this.array_buffer != null) { g_ab.arrayBufferDelete(this.array_buffer); this.array_buffer = null; } if (this.index_buffer != null) { g_ib.indexBufferDelete(this.index_buffer); this.index_buffer = null; } } g_ab.arrayBufferUpdate(this.array_update); g_ib.indexBufferUpdate(this.index_update); this.array_object = this.g.getArrayObjects().arrayObjectAllocate(this.array_object_builder); }
static JCGLArrayObjectType getArrayObject( final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLIndexBufferType ib = g_ib.indexBufferAllocate( 3L, JCGLUnsignedType.TYPE_UNSIGNED_INT, JCGLUsageHint.USAGE_STATIC_DRAW); final JCGLArrayBufferUsableType a = g_ab.arrayBufferAllocate(3L * 4L, JCGLUsageHint.USAGE_STATIC_DRAW); final JCGLArrayObjectBuilderType aob = g_ao.arrayObjectNewBuilder(); aob.setAttributeFloatingPoint( 0, a, 3, JCGLScalarType.TYPE_FLOAT, 3 * 4, 0L, false); aob.setIndexBuffer(ib); final JCGLArrayObjectType ao = g_ao.arrayObjectAllocate(aob); g_ao.arrayObjectUnbind(); return ao; }
@Test public final void testError() { final JCGLContextType c = this.newGL33Context("main", 24, 8); final JCGLInterfaceGL33Type gi = c.contextGetGL33(); final R2VertexCursorP32UNT16 ci = R2VertexCursorP32UNT16.getInstance(); final R2MeshArrayObjectSynchronousAdapterType adapter = R2MeshArrayObjectSynchronousAdapter.newAdapter( gi.getArrayObjects(), gi.getArrayBuffers(), gi.getIndexBuffers(), JCGLUsageHint.USAGE_STATIC_DRAW, JCGLUnsignedType.TYPE_UNSIGNED_INT, JCGLUsageHint.USAGE_DYNAMIC_DRAW, ci, ci); final R2MBReaderType reader = this.getMeshReader("bad_magic.r2mb", adapter); reader.run(); if (adapter.hasFailed()) { final Optional<Throwable> error_opt = adapter.errorException(); error_opt.ifPresent(Throwable::printStackTrace); } Assert.assertTrue(adapter.hasFailed()); Assert.assertThat( adapter.errorMessage(), new StringStartsWith("Bad magic number")); Assert.assertFalse(adapter.errorException().isPresent()); }
@Test public final void testErrorIndexBuffer() { final JCGLContextType c = this.newGL33Context("main", 24, 8); final JCGLInterfaceGL33Type gi = c.contextGetGL33(); final R2VertexCursorP32UNT16 ci = R2VertexCursorP32UNT16.getInstance(); final R2MeshArrayObjectSynchronousAdapterType adapter = R2MeshArrayObjectSynchronousAdapter.newAdapter( gi.getArrayObjects(), gi.getArrayBuffers(), gi.getIndexBuffers(), JCGLUsageHint.USAGE_STATIC_DRAW, JCGLUnsignedType.TYPE_UNSIGNED_INT, JCGLUsageHint.USAGE_DYNAMIC_DRAW, ci, ci); final R2MBReaderType reader = this.getMeshReader("bad_magic.r2mb", adapter); reader.run(); Assert.assertTrue(adapter.hasFailed()); this.expected.expect(IllegalStateException.class); adapter.indexBuffer(); }
@Test public final void testNoErrorException() { final JCGLContextType c = this.newGL33Context("main", 24, 8); final JCGLInterfaceGL33Type gi = c.contextGetGL33(); final R2VertexCursorP32UNT16 ci = R2VertexCursorP32UNT16.getInstance(); final R2MeshArrayObjectSynchronousAdapterType adapter = R2MeshArrayObjectSynchronousAdapter.newAdapter( gi.getArrayObjects(), gi.getArrayBuffers(), gi.getIndexBuffers(), JCGLUsageHint.USAGE_STATIC_DRAW, JCGLUnsignedType.TYPE_UNSIGNED_BYTE, JCGLUsageHint.USAGE_DYNAMIC_DRAW, ci, ci); final R2MBReaderType reader = this.getMeshReader("one_tri.r2mb", adapter); reader.run(); Assert.assertFalse(adapter.hasFailed()); this.expected.expect(IllegalStateException.class); adapter.errorException(); } }
@Test public final void testNoErrorMessage() { final JCGLContextType c = this.newGL33Context("main", 24, 8); final JCGLInterfaceGL33Type gi = c.contextGetGL33(); final R2VertexCursorP32UNT16 ci = R2VertexCursorP32UNT16.getInstance(); final R2MeshArrayObjectSynchronousAdapterType adapter = R2MeshArrayObjectSynchronousAdapter.newAdapter( gi.getArrayObjects(), gi.getArrayBuffers(), gi.getIndexBuffers(), JCGLUsageHint.USAGE_STATIC_DRAW, JCGLUnsignedType.TYPE_UNSIGNED_BYTE, JCGLUsageHint.USAGE_DYNAMIC_DRAW, ci, ci); final R2MBReaderType reader = this.getMeshReader("one_tri.r2mb", adapter); reader.run(); Assert.assertFalse(adapter.hasFailed()); this.expected.expect(IllegalStateException.class); adapter.errorMessage(); }
@Test public final void testErrorArrayObject() { final JCGLContextType c = this.newGL33Context("main", 24, 8); final JCGLInterfaceGL33Type gi = c.contextGetGL33(); final R2VertexCursorP32UNT16 ci = R2VertexCursorP32UNT16.getInstance(); final R2MeshArrayObjectSynchronousAdapterType adapter = R2MeshArrayObjectSynchronousAdapter.newAdapter( gi.getArrayObjects(), gi.getArrayBuffers(), gi.getIndexBuffers(), JCGLUsageHint.USAGE_STATIC_DRAW, JCGLUnsignedType.TYPE_UNSIGNED_INT, JCGLUsageHint.USAGE_DYNAMIC_DRAW, ci, ci); final R2MBReaderType reader = this.getMeshReader("bad_magic.r2mb", adapter); reader.run(); Assert.assertTrue(adapter.hasFailed()); this.expected.expect(IllegalStateException.class); adapter.arrayObject(); }
@Test public final void testErrorArrayBuffer() { final JCGLContextType c = this.newGL33Context("main", 24, 8); final JCGLInterfaceGL33Type gi = c.contextGetGL33(); final R2VertexCursorP32UNT16 ci = R2VertexCursorP32UNT16.getInstance(); final R2MeshArrayObjectSynchronousAdapterType adapter = R2MeshArrayObjectSynchronousAdapter.newAdapter( gi.getArrayObjects(), gi.getArrayBuffers(), gi.getIndexBuffers(), JCGLUsageHint.USAGE_STATIC_DRAW, JCGLUnsignedType.TYPE_UNSIGNED_INT, JCGLUsageHint.USAGE_DYNAMIC_DRAW, ci, ci); final R2MBReaderType reader = this.getMeshReader("bad_magic.r2mb", adapter); reader.run(); Assert.assertTrue(adapter.hasFailed()); this.expected.expect(IllegalStateException.class); adapter.arrayBuffer(); }