@Test public final void testArrayAllocateIdentities() { final JCGLArrayBuffersType ga = this.getArrayBuffers("main"); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final UnsignedRangeInclusiveL r = a.getRange(); Assert.assertEquals(0L, r.getLower()); Assert.assertEquals(99L, r.getUpper()); Assert.assertEquals(JCGLUsageHint.USAGE_STATIC_DRAW, a.getUsageHint()); Assert.assertFalse(a.isDeleted()); }
@Override public void arrayBufferDelete(final JCGLArrayBufferType a) throws JCGLException, JCGLExceptionDeleted { this.checkArray(a); if (LWJGL3ArrayBuffers.LOG.isDebugEnabled()) { LWJGL3ArrayBuffers.LOG.debug("delete {}", Integer.valueOf(a.getGLName())); } GL15.glDeleteBuffers(a.getGLName()); ((LWJGL3ArrayBuffer) a).setDeleted(); if (a.equals(this.bind)) { this.actualUnbind(); } }
@Override public void arrayBufferDelete(final JCGLArrayBufferType a) throws JCGLException, JCGLExceptionDeleted { this.checkArray(a); LOG.debug("delete {}", Integer.valueOf(a.glName())); ((FakeArrayBuffer) a).setDeleted(); if (Objects.equals(a, this.bind)) { this.actualUnbind(); } }
@Test public final void testArrayAllocateIdentities() { final JCGLArrayBuffersType ga = this.getArrayBuffers("main"); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final UnsignedRangeInclusiveL r = a.byteRange(); Assert.assertEquals(0L, r.getLower()); Assert.assertEquals(99L, r.getUpper()); Assert.assertEquals(JCGLUsageHint.USAGE_STATIC_DRAW, a.usageHint()); Assert.assertFalse(a.isDeleted()); }
@Override public boolean isDeleted() { return this.array_buffer.isDeleted(); }
@Test public final void testLoadArrayIndexOK() throws Exception { final JCGLAsyncResourceLoaderType loader = this.getLoader("main"); final CompletableFuture<JCGLAsyncBufferPairType> f = loader.loadArrayIndexBuffers( () -> "Data", (data) -> Long.valueOf(200L), JCGLUsageHint.USAGE_STATIC_DRAW, (data) -> Long.valueOf(100L), JCGLUnsignedType.TYPE_UNSIGNED_BYTE, JCGLUsageHint.USAGE_DYNAMIC_DRAW, (data, array) -> JCGLBufferUpdates.newUpdateReplacingAll(array), (data, index) -> JCGLBufferUpdates.newUpdateReplacingAll(index) ); final JCGLAsyncBufferPairType p = f.get(30L, TimeUnit.SECONDS); final JCGLArrayBufferType a = p.getArrayBuffer(); final JCGLIndexBufferType i = p.getIndexBuffer(); Assert.assertEquals(200L, a.getRange().getInterval()); Assert.assertEquals(JCGLUsageHint.USAGE_STATIC_DRAW, a.getUsageHint()); Assert.assertEquals(100L, i.getRange().getInterval()); Assert.assertEquals(JCGLUnsignedType.TYPE_UNSIGNED_BYTE, i.getType()); Assert.assertEquals(JCGLUsageHint.USAGE_DYNAMIC_DRAW, i.getUsageHint()); }
private R2UnitSphere( final JCGLArrayBufferType ab, final JCGLArrayObjectType ao, final JCGLIndexBufferType ib) { this.array_buffer = NullCheck.notNull(ab); this.index_buffer = NullCheck.notNull(ib); this.array_object = NullCheck.notNull(ao); long size = 0L; size += ab.getRange().getInterval(); size += ib.getRange().getInterval(); this.range = new UnsignedRangeInclusiveL(0L, size - 1L); }
@Test public final void testLoadArrayIndexOK() throws Exception { final JCGLAsyncResourceLoaderType loader = this.getLoader("main"); final CompletableFuture<JCGLAsyncBufferPair> f = loader.loadArrayIndexBuffers( () -> "Data", (data) -> Long.valueOf(200L), JCGLUsageHint.USAGE_STATIC_DRAW, (data) -> Long.valueOf(100L), JCGLUnsignedType.TYPE_UNSIGNED_BYTE, JCGLUsageHint.USAGE_DYNAMIC_DRAW, (data, array) -> JCGLBufferUpdates.newUpdateReplacingAll(array), (data, index) -> JCGLBufferUpdates.newUpdateReplacingAll(index) ); final JCGLAsyncBufferPairType p = f.get(30L, TimeUnit.SECONDS); final JCGLArrayBufferType a = p.arrayBuffer(); final JCGLIndexBufferType i = p.indexBuffer(); Assert.assertEquals(200L, a.byteRange().getInterval()); Assert.assertEquals(JCGLUsageHint.USAGE_STATIC_DRAW, a.usageHint()); Assert.assertEquals(100L, i.byteRange().getInterval()); Assert.assertEquals(JCGLUnsignedType.TYPE_UNSIGNED_BYTE, i.type()); Assert.assertEquals(JCGLUsageHint.USAGE_DYNAMIC_DRAW, i.usageHint()); }
@Test public final void testBufferUpdateAllIdentities() { final JCGLArrayBuffersType ga = this.getArrayBuffers("main"); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final JCGLBufferUpdateType<JCGLArrayBufferType> u = JCGLBufferUpdates.newUpdateReplacingAll(a); Assert.assertSame(a, u.buffer()); final UnsignedRangeInclusiveL u_range = u.dataUpdateRange(); final ByteBuffer u_data = u.data(); Assert.assertEquals(a.byteRange(), u_range); Assert.assertEquals(u_range.getInterval(), (long) u_data.capacity()); }
@Override public boolean isDeleted() { return this.array_buffer.isDeleted(); } }
Assert.assertEquals(JCGLUsageHint.USAGE_STATIC_DRAW, ab.getUsageHint()); Assert.assertEquals(ci.vertexSize(), ab.getRange().getInterval());
private R2UnitQuad( final JCGLArrayObjectType in_array_object, final JCGLArrayBufferType in_array, final JCGLIndexBufferType in_index) { this.array = NullCheck.notNull(in_array); this.array_object = NullCheck.notNull(in_array_object); this.index = NullCheck.notNull(in_index); this.deleted = false; long size = 0L; size += this.array.getRange().getInterval(); size += this.index.getRange().getInterval(); this.range = new UnsignedRangeInclusiveL(0L, size - 1L); }
@Test public final void testArrayReallocateIdentities() { final JCGLArrayBuffersType ga = this.getArrayBuffers("main"); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final UnsignedRangeInclusiveL r = a.byteRange(); Assert.assertEquals(0L, r.getLower()); Assert.assertEquals(99L, r.getUpper()); Assert.assertEquals(JCGLUsageHint.USAGE_STATIC_DRAW, a.usageHint()); Assert.assertFalse(a.isDeleted()); ga.arrayBufferReallocate(a); Assert.assertEquals(0L, r.getLower()); Assert.assertEquals(99L, r.getUpper()); Assert.assertEquals(JCGLUsageHint.USAGE_STATIC_DRAW, a.usageHint()); Assert.assertFalse(a.isDeleted()); }
@Test public final void testArrayReallocateIdentities() { final JCGLArrayBuffersType ga = this.getArrayBuffers("main"); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final UnsignedRangeInclusiveL r = a.getRange(); Assert.assertEquals(0L, r.getLower()); Assert.assertEquals(99L, r.getUpper()); Assert.assertEquals(JCGLUsageHint.USAGE_STATIC_DRAW, a.getUsageHint()); Assert.assertFalse(a.isDeleted()); ga.arrayBufferReallocate(a); Assert.assertEquals(0L, r.getLower()); Assert.assertEquals(99L, r.getUpper()); Assert.assertEquals(JCGLUsageHint.USAGE_STATIC_DRAW, a.getUsageHint()); Assert.assertFalse(a.isDeleted()); }
@Override public boolean isDeleted() { return this.array_buffer.isDeleted(); } }
Assert.assertEquals(JCGLUsageHint.USAGE_STATIC_DRAW, ab.getUsageHint()); Assert.assertEquals(ci.vertexSize(), ab.getRange().getInterval());
private R2DebugCube( final JCGLArrayObjectType in_array_object, final JCGLArrayBufferType in_array, final JCGLIndexBufferType in_index) { this.array = NullCheck.notNull(in_array); this.array_object = NullCheck.notNull(in_array_object); this.index = NullCheck.notNull(in_index); this.deleted = false; long size = 0L; size += this.array.getRange().getInterval(); size += this.index.getRange().getInterval(); this.range = new UnsignedRangeInclusiveL(0L, size - 1L); }
@Override public void arrayBufferDelete(final JCGLArrayBufferType a) throws JCGLException, JCGLExceptionDeleted { this.checkArray(a); if (LOG.isDebugEnabled()) { LOG.debug("delete {}", Integer.valueOf(a.glName())); } GL15.glDeleteBuffers(a.glName()); ((LWJGL3ArrayBuffer) a).setDeleted(); if (Objects.equals(a, this.bind)) { this.actualUnbind(); } }
@Override public void arrayBufferDelete(final JCGLArrayBufferType a) throws JCGLException, JCGLExceptionDeleted { this.checkArray(a); FakeArrayBuffers.LOG.debug("delete {}", Integer.valueOf(a.getGLName())); ((FakeArrayBuffer) a).setDeleted(); if (a.equals(this.bind)) { this.actualUnbind(); } }
@Test public final void testArrayDeleteNoUnbindOther() { final JCGLArrayBuffersType ga = this.getArrayBuffers("main"); final JCGLArrayBufferType a = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); final JCGLArrayBufferType b = ga.arrayBufferAllocate(100L, JCGLUsageHint.USAGE_STATIC_DRAW); ga.arrayBufferBind(a); Assert.assertEquals(Optional.of(a), ga.arrayBufferGetCurrentlyBound()); ga.arrayBufferDelete(b); Assert.assertTrue(b.isDeleted()); Assert.assertFalse(a.isDeleted()); Assert.assertEquals(Optional.of(a), ga.arrayBufferGetCurrentlyBound()); }