void flip() { buffer.flip(); }
private void deleteVAO () { if (vaoHandle != -1) { tmpHandle.clear(); tmpHandle.put(vaoHandle); tmpHandle.flip(); Gdx.gl30.glDeleteVertexArrays(1, tmpHandle); vaoHandle = -1; } } }
private void deleteVAO () { if (vaoHandle != -1) { tmpHandle.clear(); tmpHandle.put(vaoHandle); tmpHandle.flip(); Gdx.gl30.glDeleteVertexArrays(1, tmpHandle); vaoHandle = -1; } } }
private void deleteVAO () { if (vaoHandle != -1) { tmpHandle.clear(); tmpHandle.put(vaoHandle); tmpHandle.flip(); Gdx.gl30.glDeleteVertexArrays(1, tmpHandle); vaoHandle = -1; } } }
private void deleteVAO () { if (vaoHandle != -1) { tmpHandle.clear(); tmpHandle.put(vaoHandle); tmpHandle.flip(); Gdx.gl30.glDeleteVertexArrays(1, tmpHandle); vaoHandle = -1; } } }
public void dispose(int buffer) { if (buffer != 0) { pool.add(buffer); IntBuffer dataBuffer = BufferUtils.createIntBuffer(1); dataBuffer.put(0); dataBuffer.flip(); VertexBufferObjectUtil.bufferVboData(buffer, dataBuffer, GL15.GL_STATIC_DRAW); dataBuffer.flip(); if (traceBufferUsage) { usageTracker.remove(buffer); } } }
public void deleteFilter(Filter filter) { int id = filter.getId(); if (id != -1) { ib.position(0).limit(1); ib.put(id).flip(); efx.alDeleteFilters(1, ib); filter.resetObject(); } }
/** * Generate a new IntBuffer using the given array of ints. The IntBuffer * will be data.length long and contain the int data as data[0], data[1]... * etc. * * @param data * array of ints to place into a new IntBuffer */ public static IntBuffer createIntBuffer(int... data) { if (data == null) { return null; } IntBuffer buff = createIntBuffer(data.length); buff.clear(); buff.put(data); buff.flip(); return buff; }
void ensureCapacity(int size) { while (buffer.remaining() < size) { IntBuffer newB = allocateDirect(buffer.capacity() * 2); buffer.flip(); newB.put(buffer); buffer = newB; } }
public static IntBuffer ensureLargeEnough(IntBuffer buffer, int required) { if (buffer != null) { buffer.limit(buffer.capacity()); } if (buffer == null || (buffer.remaining() < required)) { int position = (buffer != null ? buffer.position() : 0); IntBuffer newVerts = createIntBuffer(position + required); if (buffer != null) { buffer.flip(); newVerts.put(buffer); newVerts.position(position); } buffer = newVerts; } return buffer; }
params.put(2, array.get(2)); params.put(3, array.get(3)); params.flip(); } else throw new GdxRuntimeException("glGetInteger not supported by GWT WebGL backend");
params.put(2, array.get(2)); params.put(3, array.get(3)); params.flip(); } else throw new GdxRuntimeException("glGetInteger not supported by GWT WebGL backend");
@Override public void deleteBuffer(final BufferObject bo) { int bufferId = bo.getId(); if (bufferId == -1) { return; } intBuf1.clear(); intBuf1.put(bufferId); intBuf1.flip(); gl.glDeleteBuffers(intBuf1); bo.resetObject(); }
@Override public void dispose() { GL30 gl = Gdx.gl30; gl.glBindBuffer(GL20.GL_ARRAY_BUFFER, 0); gl.glDeleteBuffer(bufferHandle); bufferHandle = 0; BufferUtils.disposeUnsafeByteBuffer(byteBuffer); if (gl.glIsVertexArray(vaoHandle)) { tmpHandle.clear(); tmpHandle.put(vaoHandle); tmpHandle.flip(); gl.glDeleteVertexArrays(1, tmpHandle); } } }
private void initUniformBuffer() { uniformBufferId = glGenBuffers(gl); gl.glBindBuffer(gl.GL_UNIFORM_BUFFER, uniformBufferId); uniformBuffer.clear(); uniformBuffer.put(new int[8]); final int[] pad = new int[2]; for (int i = 0; i < 2048; i++) { uniformBuffer.put(Perspective.SINE[i]); uniformBuffer.put(Perspective.COSINE[i]); uniformBuffer.put(pad); } uniformBuffer.flip(); gl.glBufferData(gl.GL_UNIFORM_BUFFER, uniformBuffer.limit() * Integer.BYTES, uniformBuffer, gl.GL_STATIC_DRAW); gl.glBindBuffer(gl.GL_UNIFORM_BUFFER, 0); }
private void createIndexBuffer(TIntList indexList) { IntBuffer indexBuffer = BufferUtils.createIntBuffer(indexList.size()); TIntIterator iterator = indexList.iterator(); while (iterator.hasNext()) { indexBuffer.put(iterator.next()); } indexBuffer.flip(); if (disposalAction.vboIndexBuffer == 0) { disposalAction.vboIndexBuffer = disposalAction.bufferPool.get(getUrn().toString()); } VertexBufferObjectUtil.bufferVboElementData(disposalAction.vboIndexBuffer, indexBuffer, GL15.GL_STATIC_DRAW); indexBuffer.flip(); }
public IntBuffer writeIndexArray(IntBuffer store){ int faceN = (getWidth()-1)*(getHeight()-1)*2; if (store!=null){ if (store.remaining() < faceN*3) throw new BufferUnderflowException(); }else{ store = BufferUtils.createIntBuffer(faceN*3); } int i = 0; for (int z = 0; z < getHeight()-1; z++){ for (int x = 0; x < getWidth()-1; x++){ store.put(i).put(i+getWidth()).put(i+getWidth()+1); store.put(i+getWidth()+1).put(i+1).put(i); i++; // TODO: There's probably a better way to do this.. if (x==getWidth()-2) i++; } } store.flip(); return store; }
public void deleteAudioData(AudioData ad) { synchronized (threadLock) { if (audioDisabled) { return; } if (ad instanceof AudioBuffer) { AudioBuffer ab = (AudioBuffer) ad; int id = ab.getId(); if (id != -1) { ib.put(0, id); ib.position(0).limit(1); al.alDeleteBuffers(1, ib); ab.resetObject(); } } else if (ad instanceof AudioStream) { AudioStream as = (AudioStream) ad; int[] ids = as.getIds(); if (ids != null) { ib.clear(); ib.put(ids).flip(); al.alDeleteBuffers(ids.length, ib); as.resetObject(); } } } } }
@Override protected void doReload(SkeletalMeshData newData) { try { GameThread.synch(() -> { this.data = newData; if (disposalAction.vboPosNormBuffer == 0) { disposalAction.vboPosNormBuffer = disposalAction.bufferPool.get(getUrn().toString()); } IntBuffer indexBuffer = BufferUtils.createIntBuffer(newData.getIndices().size()); indexBuffer.put(newData.getIndices().toArray()); indexBuffer.flip(); if (disposalAction.vboIndexBuffer == 0) { disposalAction.vboIndexBuffer = disposalAction.bufferPool.get(getUrn().toString()); } VertexBufferObjectUtil.bufferVboElementData(disposalAction.vboIndexBuffer, indexBuffer, GL15.GL_STATIC_DRAW); FloatBuffer uvBuffer = BufferUtils.createFloatBuffer(newData.getUVs().size() * 2); for (Vector2f uv : newData.getUVs()) { uvBuffer.put(uv.x); uvBuffer.put(uv.y); } uvBuffer.flip(); if (disposalAction.vboUVBuffer == 0) { disposalAction.vboUVBuffer = disposalAction.bufferPool.get(getUrn().toString()); } VertexBufferObjectUtil.bufferVboData(disposalAction.vboUVBuffer, uvBuffer, GL15.GL_STATIC_DRAW); }); } catch (InterruptedException e) { logger.error("Failed to reload {}", getUrn(), e); } }
@Override public OpenALStreamingSoundSource setAudio(OpenALStreamingSound sound) { boolean isPlaying = this.isPlaying(); if (isPlaying) { alSourceStop(getSourceId()); alSourceRewind(getSourceId()); } alSourcei(this.getSourceId(), AL_BUFFER, 0); this.audio = sound; sound.reset(); int[] buffers = sound.getBuffers(); for (int buffer : buffers) { sound.updateBuffer(buffer); } alSourceQueueBuffers(this.getSourceId(), (IntBuffer) BufferUtils.createIntBuffer(buffers.length).put(buffers).flip()); if (isPlaying) { this.play(); } return this; }