/** * Construct a new empty batch. * * @param in_g A GL interface */ public R2DebugLineSegmentsBatch( final JCGLInterfaceGL33Type in_g) { final JCGLInterfaceGL33Type g33 = NullCheck.notNull(in_g, "GL33"); this.g33_array_buffers = g33.getArrayBuffers(); this.g33_array_objects = g33.getArrayObjects(); this.space_available = 0L; }
@Override public void delete( final JCGLInterfaceGL33Type g) throws R2Exception { NullCheck.notNull(g); if (!this.isDeleted()) { final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); g_ab.arrayBufferDelete(this.data_vbo); g_ao.arrayObjectDelete(this.data_vao); } }
@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 delete(final JCGLInterfaceGL33Type g) throws R2Exception { NullCheck.notNull(g); if (!this.isDeleted()) { final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); g_ab.arrayBufferDelete(this.matrix_vbo); g_ao.arrayObjectDelete(this.matrix_vao); this.disableAll(); } }
@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 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 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); }
@Test public void testTooMany() { final JCGLContextType c = this.newGL33Context("main", 24, 8); final JCGLInterfaceGL33Type g33 = c.contextGetGL33(); final R2IDPoolType id_pool = R2IDPool.newPool(); final R2InstanceBillboardedDynamicType i = R2InstanceBillboardedDynamic.newBillboarded( id_pool, g33.getArrayBuffers(), g33.getArrayObjects(), 8); for (int index = 0; index < 8; ++index) { i.addInstance(new PVectorI3F<>(0.0f, 0.0f, 0.0f), 1.0f, 0.0f); } this.expected.expect(R2ExceptionBatchIsFull.class); i.addInstance(new PVectorI3F<>(0.0f, 0.0f, 0.0f), 1.0f, 0.0f); } }
private static R2MaskInstancesType newScene( final JCGLInterfaceGL33Type g, final R2UnitQuadType quad, final R2IDPoolType id_pool) { final R2InstanceSingleType is0 = R2InstanceSingle.of( id_pool.freshID(), quad.arrayObject(), R2TransformIdentity.getInstance(), PMatrixI3x3F.identity()); final R2InstanceBatchedDynamicType ib0 = R2InstanceBatchedDynamic.newBatch( id_pool, g.getArrayBuffers(), g.getArrayObjects(), quad.arrayObject(), 3); return R2MaskInstances.builder() .addSingles(is0) .addBatched(ib0) .build(); }
@Test public void testTooMany() { final JCGLContextType c = this.newGL33Context("main", 24, 8); final JCGLInterfaceGL33Type g33 = c.contextGetGL33(); final R2IDPoolType id_pool = R2IDPool.newPool(); final R2UnitQuadType quad = R2UnitQuad.newUnitQuad(g33); final R2InstanceBatchedDynamicType i = R2InstanceBatchedDynamic.newBatch( id_pool, g33.getArrayBuffers(), g33.getArrayObjects(), quad.arrayObject(), 8); for (int index = 0; index < 8; ++index) { i.enableInstance(R2TransformT.newTransform()); } this.expected.expect(R2ExceptionBatchIsFull.class); i.enableInstance(R2TransformT.newTransform()); } }
@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(); } }