/** * Gets the nio buffer associated with the given key. * * @return the buffer for the associated buffer data */ public <T extends Buffer> T getBuffer(final String key) { @SuppressWarnings("unchecked") final AbstractBufferData<T> coords = getCoords(key); if (coords == null) { return null; } return coords.getBuffer(); }
final Buffer dataBuffer = buffer.getBuffer(); if (dataBuffer != null) { dataBuffer.rewind();
@Override public void bindVertexAttribute(final int location, final AbstractBufferData<? extends Buffer> buffer) { GL20C.glVertexAttribPointer(location, buffer.getValuesPerTuple(), getGLDataType(buffer.getBuffer()), false, 0, 0); GL20C.glEnableVertexAttribArray(location); }
private static void updateVBO(final AbstractBufferData<? extends Buffer> data, final RendererRecord rendRecord, final int vboID, final int offsetBytes) { if (data.isNeedsRefresh()) { final GL gl = GLContext.getCurrentGL(); final Buffer dataBuffer = data.getBuffer(); dataBuffer.rewind(); JoglRendererUtil.setBoundVBO(rendRecord, vboID); gl.glBufferSubData(GL.GL_ARRAY_BUFFER, offsetBytes, dataBuffer.limit() * data.getByteCount(), dataBuffer); data.setNeedsRefresh(false); } }
public static void updateVBO(final AbstractBufferData<? extends Buffer> data, final RendererRecord rendRecord, final int vboID, final int offsetBytes) { if (data.isNeedsRefresh()) { final Buffer dataBuffer = data.getBuffer(); dataBuffer.rewind(); LwjglRendererUtil.setBoundVBO(rendRecord, vboID); if (dataBuffer instanceof FloatBuffer) { ARBBufferObject.glBufferSubDataARB(ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, offsetBytes, (FloatBuffer) dataBuffer); } else if (dataBuffer instanceof ByteBuffer) { ARBBufferObject.glBufferSubDataARB(ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, offsetBytes, (ByteBuffer) dataBuffer); } else if (dataBuffer instanceof IntBuffer) { ARBBufferObject.glBufferSubDataARB(ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, offsetBytes, (IntBuffer) dataBuffer); } else if (dataBuffer instanceof ShortBuffer) { ARBBufferObject.glBufferSubDataARB(ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, offsetBytes, (ShortBuffer) dataBuffer); } data.setNeedsRefresh(false); } }
public static int setupVBO(final AbstractBufferData<? extends Buffer> data, final RenderContext context) { if (data == null) { return 0; } final GL gl = GLContext.getCurrentGL(); final RendererRecord rendRecord = context.getRendererRecord(); int vboID = data.getVBOID(context.getGlContextRep()); if (vboID != 0) { updateVBO(data, rendRecord, vboID, 0); return vboID; } final Buffer dataBuffer = data.getBuffer(); if (dataBuffer != null) { // XXX: should we be rewinding? Maybe make that the programmer's responsibility. dataBuffer.rewind(); vboID = makeVBOId(); data.setVBOID(context.getGlContextRep(), vboID); rendRecord.invalidateVBO(); JoglRendererUtil.setBoundVBO(rendRecord, vboID); gl.glBufferData(GL.GL_ARRAY_BUFFER, dataBuffer.limit() * data.getByteCount(), dataBuffer, getGLVBOAccessMode(data.getVboAccessMode())); } else { throw new Ardor3dException("Attempting to create a vbo id for an AbstractBufferData with no Buffer value."); } return vboID; }
final Buffer dataBuffer = data.getBuffer(); if (dataBuffer != null) {