Refine search
public static void bufferVboElementData(int id, IntBuffer buffer, int drawMode) { GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, id); GL15.glBufferData(GL15.GL_ELEMENT_ARRAY_BUFFER, buffer, drawMode); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); }
public int glGenBuffer () { return GL15.glGenBuffers(); }
@Override public void glDeleteBuffer (int buffer) { GL15.glDeleteBuffers(buffer); }
vertexCount = indices.length; vaoId = glGenVertexArrays(); glBindVertexArray(vaoId); posVboId = glGenBuffers(); posBuffer = MemoryUtil.memAllocFloat(positions.length); posBuffer.put(positions).flip(); glBindBuffer(GL_ARRAY_BUFFER, posVboId); glBufferData(GL_ARRAY_BUFFER, posBuffer, GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, false, 0, 0); idxVboId = glGenBuffers(); indicesBuffer = MemoryUtil.memAllocInt(indices.length); indicesBuffer.put(indices).flip(); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, idxVboId); glBufferData(GL_ELEMENT_ARRAY_BUFFER, indicesBuffer, GL_STATIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0); } finally { if (posBuffer != null) {
glBindVertexArray(axisVaoId); glBindBuffer(GL_ARRAY_BUFFER, axisVboId); vertexFloatBuffer.put(axisData); vertexFloatBuffer.flip(); glBufferData(GL_ARRAY_BUFFER, vertexFloatBuffer, GL_DYNAMIC_DRAW); mvpMatrixFB.put( mvpMatrix.toArray() ); mvpMatrixFB.flip(); glUniformMatrix4fv(axisShaderProgram.uniform("mvpMatrix"), false, mvpMatrixFB); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0);
IntBuffer ids = BufferUtils.createIntBuffer(2); glGenBuffers(ids); cubeVbo = ids.get(); planeVbo = ids.get(); checkGLError(); checkGLError(); fbo = glGenFramebuffers(); textureFilterProgram = glCreateProgram(); checkGLError(); FloatBuffer vertexBuffer = BufferUtils.createFloatBuffer(vertices.length); vertexBuffer.put(vertices); vertexBuffer.flip(); glBindBuffer(GL_ARRAY_BUFFER, cubeVbo); glBufferData(GL_ARRAY_BUFFER, vertexBuffer, GL_STATIC_DRAW); checkGLError(); planeVertexBuffer.put(planeVertices); planeVertexBuffer.flip(); glBindBuffer(GL_ARRAY_BUFFER, planeVbo); glBufferData(GL_ARRAY_BUFFER, planeVertexBuffer, GL_STATIC_DRAW); checkGLError();
@Override public void glBufferSubData(int target, int offset, int size, Buffer data) { // Limit the buffer to the given size, restoring it afterwards int oldLimit = data.limit(); if (data instanceof ByteBuffer) { ByteBuffer subData = (ByteBuffer)data; subData.limit(subData.position() + size); GL15.glBufferSubData(target, offset, subData); } else if (data instanceof IntBuffer) { IntBuffer subData = (IntBuffer)data; subData.limit(subData.position() + size/4); GL15.glBufferSubData(target, offset, subData); } else if (data instanceof FloatBuffer) { FloatBuffer subData = (FloatBuffer)data; subData.limit(subData.position() + size/4); GL15.glBufferSubData(target, offset, subData); } else if (data instanceof DoubleBuffer) { DoubleBuffer subData = (DoubleBuffer)data; subData.limit(subData.position() + size/8); GL15.glBufferSubData(target, offset, subData); } else if (data instanceof ShortBuffer) { ShortBuffer subData = (ShortBuffer)data; subData.limit(subData.position() + size/2); GL15.glBufferSubData(target, offset, subData); } data.limit(oldLimit); }
@Override public void render(Renderer renderer) { if (tcbo == Integer.MAX_VALUE) { if (Visage.trace) Visage.log.finest("Creating texture coord buffer"); tcbo = glGenBuffers(); FloatBuffer uv = BufferUtils.createFloatBuffer(texture.u.length+texture.v.length); for (int i = 0; i < texture.u.length; i++) { uv.put(texture.u[i]); uv.put(texture.v[i]); } uv.flip(); glBindBuffer(GL_ARRAY_BUFFER, tcbo); glBufferData(GL_ARRAY_BUFFER, uv, GL_STATIC_DRAW); } doRender(renderer, renderer.owner.planeVbo, tcbo, RenderContext.planeVertices); } }
public void deleteBuffers() { glDisableVertexAttribArray(0); // Delete the VBOs glBindBuffer(GL_ARRAY_BUFFER, 0); for (int vboId : vboIdList) { glDeleteBuffers(vboId); } // Delete the VAO glBindVertexArray(0); glDeleteVertexArrays(vaoId); } }
public void doRender(List<Vector3f> verts, List<Vector3f> normals) { FloatBuffer vertBuffer = BufferUtils.createFloatBuffer(verts.size() * 6); for (int i = 0; i < verts.size(); ++i) { Vector3f vert = verts.get(i); vertBuffer.put(vert.x * scale.x + translate.x); vertBuffer.put(vert.y * scale.y + translate.y); vertBuffer.put(vert.z * scale.z + translate.z); Vector3f norm = normals.get(i); vertBuffer.put(norm.x); vertBuffer.put(norm.y); vertBuffer.put(norm.z); } vertBuffer.flip(); VertexBufferObjectUtil.bufferVboData(disposalAction.vboPosNormBuffer, vertBuffer, GL15.GL_DYNAMIC_DRAW); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, disposalAction.vboPosNormBuffer); glVertexPointer(VECTOR3_SIZE, GL_FLOAT, STRIDE, 0); glNormalPointer(GL_FLOAT, STRIDE, NORMAL_OFFSET); GL11.glDrawElements(GL11.GL_TRIANGLES, data.getIndices().size(), GL_UNSIGNED_INT, 0); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); }
public Model(float[] vertices, float[] tex_coords, int[] indices) { drawCount = indices.length; vertexObject = glGenBuffers(); glBindBuffer(GL_ARRAY_BUFFER, vertexObject); glBufferData(GL_ARRAY_BUFFER, createBuffer(vertices), GL_STATIC_DRAW); textureCoordObject = glGenBuffers(); glBindBuffer(GL_ARRAY_BUFFER, textureCoordObject); glBufferData(GL_ARRAY_BUFFER, createBuffer(tex_coords), GL_STATIC_DRAW); indexObject = glGenBuffers(); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexObject); IntBuffer buffer = BufferUtils.createIntBuffer(indices.length); buffer.put(indices); buffer.flip(); glBufferData(GL_ELEMENT_ARRAY_BUFFER, buffer, GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glBindBuffer(GL_ARRAY_BUFFER, 0); }
public void initialize(RenderManager renderManager, ViewPort vp) { if (alreadyClosing) return; if (this.renderManager == null) { // First time called in OGL thread this.renderManager = renderManager; // Get two PBO buffers, put their indices in buffer IntBuffer buffer = BufferUtils.createIntBuffer(2); glGenBuffers(buffer); gpuToVram = buffer.get(0); vramToSys = buffer.get(1); reshapeInThread(1, 1); } }
public int get(String forUseBy) { if (pool.isEmpty()) { IntBuffer buffer = BufferUtils.createIntBuffer(BUFFER_FETCH_SIZE); GL15.glGenBuffers(buffer); for (int i = 0; i < BUFFER_FETCH_SIZE; ++i) { pool.add(buffer.get(i)); } totalPoolSize += BUFFER_FETCH_SIZE; } int result = pool.removeAt(pool.size() - 1); if (traceBufferUsage) { usageTracker.put(result, forUseBy); } return result; }
public void reshape(ViewPort vp, int w, int h) { dataSize = w * h * 4; width = w; height = h; bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR); // Create PBO buffer in the system memory to store data from vramToSys in systemRam = BufferUtils.createByteBuffer(dataSize); cpuArray = new byte[dataSize]; if (USE_PBO) { // Get two PBO buffers, put their indices in buffer IntBuffer buffer = BufferUtils.createIntBuffer(1); glGenBuffers(buffer); // Map both PBO buffers, and put the indices in bufferIds // for(int i = 0; i < 2; i++) // { bufferId = buffer.get(0); glBindBuffer(GL_PIXEL_PACK_BUFFER, bufferId); glBufferData(GL_PIXEL_PACK_BUFFER, dataSize, GL_STATIC_READ); // bufferIds = bufferId; // } // Unbind PBO buffers glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); } }
public void deleteBuffer(VertexBuffer vb) { int bufId = vb.getId(); if (bufId != -1) { // delete buffer intBuf1.put(0, bufId); intBuf1.position(0).limit(1); glDeleteBuffers(intBuf1); vb.resetObject(); //statistics.onDeleteVertexBuffer(); } }
@Override public GeometryHandle storeGeometry(float[] geometry, EGeometryFormatType type, boolean writable, String name) { GeometryHandle geometryBuffer = allocateVBO(type, name); bindGeometry(geometryBuffer); try(MemoryStack stack = MemoryStack.stackPush()) { ByteBuffer bfr = stack.malloc(4*geometry.length); bfr.asFloatBuffer().put(geometry); GL15.glBufferData(GL15.GL_ARRAY_BUFFER, bfr, writable ? GL15.GL_DYNAMIC_DRAW : GL15.GL_STATIC_DRAW); setObjectLabel(KHRDebug.GL_BUFFER, geometryBuffer.getInternalId(), name + "-vertices"); } return geometryBuffer; }
public void updateData(FloatBuffer buffer, int length){ glBindBuffer(GL_UNIFORM_BUFFER, ubo); ByteBuffer mappedBuffer = glMapBuffer(GL_UNIFORM_BUFFER, GL_READ_WRITE, length, null); mappedBuffer.clear(); for (int i=0; i<length/Float.BYTES; i++){ mappedBuffer.putFloat(buffer.get(i)); } mappedBuffer.flip(); glUnmapBuffer(GL_UNIFORM_BUFFER); }
private void renderChunkInstanced(List<GameItem> gameItems, boolean depthMap, Transformation transformation, Matrix4f viewMatrix, Matrix4f lightViewMatrix) { this.modelViewBuffer.clear(); this.modelLightViewBuffer.clear(); int i = 0; for (GameItem gameItem : gameItems) { Matrix4f modelMatrix = transformation.buildModelMatrix(gameItem); if (!depthMap) { Matrix4f modelViewMatrix = transformation.buildModelViewMatrix(modelMatrix, viewMatrix); modelViewMatrix.get(MATRIX_SIZE_FLOATS * i, modelViewBuffer); } Matrix4f modelLightViewMatrix = transformation.buildModelLightViewMatrix(modelMatrix, lightViewMatrix); modelLightViewMatrix.get(MATRIX_SIZE_FLOATS * i, this.modelLightViewBuffer); i++; } glBindBuffer(GL_ARRAY_BUFFER, modelViewVBO); glBufferData(GL_ARRAY_BUFFER, modelViewBuffer, GL_DYNAMIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER, modelLightViewVBO); glBufferData(GL_ARRAY_BUFFER, modelLightViewBuffer, GL_DYNAMIC_DRAW); glDrawElementsInstanced( GL_TRIANGLES, getVertexCount(), GL_UNSIGNED_INT, 0, gameItems.size()); glBindBuffer(GL_ARRAY_BUFFER, 0); } }
public void glBufferData (int target, int size, Buffer data, int usage) { if (data == null) GL15.glBufferData(target, size, usage); else if (data instanceof ByteBuffer) GL15.glBufferData(target, (ByteBuffer)data, usage); else if (data instanceof IntBuffer) GL15.glBufferData(target, (IntBuffer)data, usage); else if (data instanceof FloatBuffer) GL15.glBufferData(target, (FloatBuffer)data, usage); else if (data instanceof DoubleBuffer) GL15.glBufferData(target, (DoubleBuffer)data, usage); else if (data instanceof ShortBuffer) // GL15.glBufferData(target, (ShortBuffer)data, usage); }
public void glBindBuffer (int target, int buffer) { GL15.glBindBuffer(target, buffer); }