List of usage examples for org.lwjgl.opengl GL15 GL_ARRAY_BUFFER
int GL_ARRAY_BUFFER
To view the source code for org.lwjgl.opengl GL15 GL_ARRAY_BUFFER.
Click Source Link
From source file:ru.axialshift.vram.gl.VertexVBO.java
License:Apache License
@Override protected void upload_gl() { //Allocation/*from ww w . j a v a2 s . c o m*/ glpointer = GL15.glGenBuffers(); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, glpointer); GL15.glBufferData(GL15.GL_ARRAY_BUFFER, (FloatBuffer) tovram, GL15.GL_STATIC_DRAW); //Mapping int stride = 4 * (MeshData.VERTICES_STRIDE + MeshData.UVS_STRIDE + MeshData.NORMALS_STRIDE + MeshData.TANGENTS_STRIDE + MeshData.BITANGENTS_STRIDE); int offset = 0; //Vertices int bytesPerVertex = MeshData.VERTICES_STRIDE * 4; GL20.glVertexAttribPointer(id_pos, MeshData.VERTICES_STRIDE, GL11.GL_FLOAT, false, stride, offset); //UVs int bytesPerUVs = MeshData.UVS_STRIDE * 4; offset += bytesPerVertex; GL20.glVertexAttribPointer(id_uvs, MeshData.UVS_STRIDE, GL11.GL_FLOAT, false, stride, offset); //Normals int bytesPerNormals = MeshData.NORMALS_STRIDE * 4; offset += bytesPerUVs; GL20.glVertexAttribPointer(id_nor, MeshData.NORMALS_STRIDE, GL11.GL_FLOAT, false, stride, offset); //Tangents int bytesPerTangents = MeshData.TANGENTS_STRIDE * 4; offset += bytesPerNormals; GL20.glVertexAttribPointer(id_tan, MeshData.TANGENTS_STRIDE, GL11.GL_FLOAT, false, stride, offset); //BiTangents //int bytesPerBiTangents = MeshData.BITANGENTS_STRIDE*4; offset += bytesPerTangents; GL20.glVertexAttribPointer(id_btan, MeshData.BITANGENTS_STRIDE, GL11.GL_FLOAT, false, stride, offset); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); }
From source file:ru.axialshift.vram.gl.VertexVBO.java
License:Apache License
@Override protected void unload_gl() { GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); super.unload_gl(); }
From source file:se.angergard.engine.graphics.Mesh.java
License:Apache License
public Mesh(long vertexBufferSize, long indicesBufferSize, int usage) { if (aMeshCreated) { new Exception("You can't create multiple meshes as of right now. This is due to a bug") .printStackTrace();/*from w w w . j a v a2 s . c om*/ } vbo = GL15.glGenBuffers(); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vbo); GL15.glBufferData(GL15.GL_ARRAY_BUFFER, vertexBufferSize, usage); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); ibo = GL15.glGenBuffers(); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, ibo); GL15.glBufferData(GL15.GL_ELEMENT_ARRAY_BUFFER, indicesBufferSize, usage); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); this.VERTEX_BUFFER_SIZE = vertexBufferSize; this.INDICES_BUFFER_SIZE = indicesBufferSize; this.INDICES_LENGTH = (int) indicesBufferSize / 4; // removes bytes aMeshCreated = true; }
From source file:se.angergard.engine.graphics.Mesh.java
License:Apache License
public final void setVertices(FloatBuffer buffer) { GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vbo); GL15.glBufferSubData(GL15.GL_ARRAY_BUFFER, 0, buffer); // GL15.glBufferData(GL15.GL_ARRAY_BUFFER, buffer, GL15.GL_DYNAMIC_DRAW); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); }
From source file:se.angergard.engine.graphics.Mesh.java
License:Apache License
public void draw() { GL20.glEnableVertexAttribArray(0);/*from www . ja v a 2s.co m*/ GL20.glEnableVertexAttribArray(1); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vbo); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, ibo); GL20.glVertexAttribPointer(0, 2, GL11.GL_FLOAT, false, Vertex2D.SIZE_BYTES, 0); GL20.glVertexAttribPointer(1, 2, GL11.GL_FLOAT, false, Vertex2D.SIZE_BYTES, 8); GL11.glDrawElements(GL11.GL_TRIANGLES, INDICES_LENGTH, GL11.GL_UNSIGNED_INT, 0); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); GL20.glDisableVertexAttribArray(0); GL20.glDisableVertexAttribArray(1); }
From source file:thebounzer.org.lwgldemo.Chapter5.java
License:Open Source License
private void createAndBindVertexObject(float[] data) throws IOException { FloatBuffer fBuffer = BufferUtils.createFloatBuffer(data.length); fBuffer.put(data);/* w ww . j av a 2 s.co m*/ fBuffer.flip(); int vboId = GL15.glGenBuffers(); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboId); GL15.glBufferData(GL15.GL_ARRAY_BUFFER, fBuffer, GL15.GL_STATIC_DRAW); GL20.glVertexAttribPointer(0, 3, GL11.GL_FLOAT, false, 0, 0); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); }
From source file:uk.co.hexeption.darkforge.utils.render.GLUtils.java
License:Open Source License
public static int genVBO() { int id = GL15.glGenBuffers(); vbos.add(id);/*from ww w .j ava2s . c om*/ GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, id); return id; }
From source file:uk.co.hexeption.darkforge.utils.render.GLUtils.java
License:Open Source License
/** * Cleans ups the arrays on close// w ww . jav a 2 s. c o m */ public static void cleanup() { GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); glBindTexture(GL_TEXTURE_2D, 0); for (int vbo : vbos) { GL15.glDeleteBuffers(vbo); } for (int texture : textures) { glDeleteTextures(texture); } }
From source file:uk.co.ifs_studios.engine.geometry.BasicDrawElement.java
License:Open Source License
/** * Set verticies to DrawElement.//from w w w . j ava2 s . c o m * * @param verticies * - Verticies. */ public void setVerticies(Vertex[] verticies) { float[] vertexValues = new float[verticies.length * 4]; int vertexIndex = 0; for (int i = 0; i < vertexValues.length; i += 4) { vertexValues[i + 0] = verticies[vertexIndex].getX(); vertexValues[i + 1] = verticies[vertexIndex].getY(); vertexValues[i + 2] = verticies[vertexIndex].getZ(); vertexValues[i + 3] = verticies[vertexIndex].getW(); vertexIndex++; } FloatBuffer verticiesBuffer = BufferUtils.createFloatBuffer(vertexValues.length); verticiesBuffer.put(vertexValues); verticiesBuffer.flip(); GL30.glBindVertexArray(this.vao); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, this.vbo); GL15.glBufferData(GL15.GL_ARRAY_BUFFER, verticiesBuffer, GL15.GL_STATIC_DRAW); GL20.glVertexAttribPointer(0, 4, GL11.GL_FLOAT, false, 0, 0); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL30.glBindVertexArray(0); }
From source file:uk.co.ifs_studios.engine.geometry.BasicDrawElement.java
License:Open Source License
/** * Set colors to DrawElement.//from ww w . j a v a 2s.c o m * * @param colors * - Colors. */ public void setColors(Color[] colors) { float[] colorValues = new float[colors.length * 4]; int colorIndex = 0; for (int i = 0; i < colorValues.length; i += 4) { colorValues[i + 0] = colors[colorIndex].getRed(); colorValues[i + 1] = colors[colorIndex].getGreen(); colorValues[i + 2] = colors[colorIndex].getBlue(); colorValues[i + 3] = colors[colorIndex].getAlpha(); colorIndex++; } FloatBuffer colorsBuffer = BufferUtils.createFloatBuffer(colorValues.length); colorsBuffer.put(colorValues); colorsBuffer.flip(); GL30.glBindVertexArray(this.vao); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, this.cbo); GL15.glBufferData(GL15.GL_ARRAY_BUFFER, colorsBuffer, GL15.GL_STREAM_DRAW); GL20.glVertexAttribPointer(1, 4, GL11.GL_FLOAT, false, 0, 0); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL30.glBindVertexArray(0); }