List of usage examples for org.lwjgl.opengl GL30 glBindVertexArray
public static void glBindVertexArray(@NativeType("GLuint") int array)
From source file:com.voxelplugineering.voxelsniper.render.buffer.BufferManager.java
License:Open Source License
public void destroy() { GL30.glBindVertexArray(vaoId); GL20.glDisableVertexAttribArray(0);//from w ww. j av a 2 s . c o m GL20.glDisableVertexAttribArray(1); GL20.glDisableVertexAttribArray(2); for (BufferSection b : this.sections) { b.destroy(); } GL30.glBindVertexArray(0); GL30.glDeleteVertexArrays(vaoId); }
From source file:com.voxelplugineering.voxelsniper.render.buffer.BufferManager.java
License:Open Source License
public void renderSections() { GL30.glBindVertexArray(vaoId); GL20.glEnableVertexAttribArray(0);/* www . ja v a 2 s . c om*/ GL20.glEnableVertexAttribArray(1); GL20.glEnableVertexAttribArray(2); for (BufferSection b : this.sections) { b.draw(); } GL20.glDisableVertexAttribArray(0); GL20.glDisableVertexAttribArray(1); GL20.glDisableVertexAttribArray(2); GL30.glBindVertexArray(0); }
From source file:com.voxelplugineering.voxelsniper.render.buffer.BufferSection.java
License:Open Source License
public void create(int vaoId) { build();//from w w w . ja v a 2 s . c o m GL30.glBindVertexArray(vaoId); // Create a new Vertex Buffer Object in memory and select it (bind) vboId = GL15.glGenBuffers(); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboId); GL15.glBufferData(GL15.GL_ARRAY_BUFFER, verticesFloatBuffer, GL15.GL_STREAM_DRAW); // Put the position coordinates in attribute list 0 GL20.glVertexAttribPointer(0, RenderingConstants.POSITION_ELEMENT_COUNT, GL11.GL_FLOAT, false, RenderingConstants.STRIDE, RenderingConstants.POSITION_BYTE_OFFSET); // Put the color components in attribute list 1 GL20.glVertexAttribPointer(1, RenderingConstants.COLOUR_ELEMENT_COUNT, GL11.GL_FLOAT, false, RenderingConstants.STRIDE, RenderingConstants.COLOUR_BYTE_OFFSET); // Put the texture coordinates in attribute list 2 GL20.glVertexAttribPointer(2, RenderingConstants.TEXTURE_ELEMENT_COUNT, GL11.GL_FLOAT, false, RenderingConstants.STRIDE, RenderingConstants.TEXTURE_BYTE_OFFSET); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); // Deselect (bind to 0) the VAO GL30.glBindVertexArray(0); // Create a new VBO for the indices and select it (bind) - INDICES vboiId = GL15.glGenBuffers(); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vboiId); GL15.glBufferData(GL15.GL_ELEMENT_ARRAY_BUFFER, indicesBuffer, GL15.GL_STATIC_DRAW); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); }
From source file:com.xrbpowered.gl.res.shaders.FeedbackVertices.java
License:Open Source License
public FeedbackVertices(Shader transformShader, Shader renderShader, int count, boolean createIndices) { this.transformShader = transformShader; this.renderShader = renderShader; this.countElements = count; vertexBuffer = BufferUtils.createByteBuffer(count * transformShader.info.getStride()).asFloatBuffer(); feedbackBuffer = BufferUtils.createByteBuffer(count * renderShader.info.getStride()).asFloatBuffer(); vaoId = GL30.glGenVertexArrays();/* www.j a v a 2 s .c o m*/ GL30.glBindVertexArray(vaoId); vboId = GL15.glGenBuffers(); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboId); GL15.glBufferData(GL15.GL_ARRAY_BUFFER, count * transformShader.info.getStride(), GL15.GL_DYNAMIC_DRAW); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); vboFeedbackId = GL15.glGenBuffers(); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboFeedbackId); GL15.glBufferData(GL15.GL_ARRAY_BUFFER, count * renderShader.info.getStride(), GL15.GL_DYNAMIC_DRAW); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL30.glBindVertexArray(0); if (createIndices) { indexBuffer = BufferUtils.createByteBuffer(count * 4).asIntBuffer(); vboiId = GL15.glGenBuffers(); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vboiId); GL15.glBufferData(GL15.GL_ELEMENT_ARRAY_BUFFER, count * 4, GL15.GL_DYNAMIC_DRAW); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); } Client.checkError(); }
From source file:com.xrbpowered.gl.res.shaders.FeedbackVertices.java
License:Open Source License
public void transform() { GL30.glBindVertexArray(vaoId); GL11.glEnable(GL30.GL_RASTERIZER_DISCARD); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboId); transformShader.use();/*from w w w. j a v a 2 s . c om*/ transformShader.info.initAttribPointers(); transformShader.info.enableAttribs(); GL30.glBindBufferBase(GL30.GL_TRANSFORM_FEEDBACK_BUFFER, 0, vboFeedbackId); GL30.glBeginTransformFeedback(GL11.GL_POINTS); GL11.glDrawArrays(GL11.GL_POINTS, 0, countElements); GL30.glEndTransformFeedback(); transformShader.info.disableAttribs(); transformShader.unuse(); GL11.glDisable(GL30.GL_RASTERIZER_DISCARD); }
From source file:com.xrbpowered.gl.res.shaders.FeedbackVertices.java
License:Open Source License
public void draw() { GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboFeedbackId); renderShader.use();/*from w w w . j a va 2 s. co m*/ renderShader.info.enableAttribs(); renderShader.info.initAttribPointers(); if (vboiId != GL11.GL_INVALID_VALUE) { GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vboiId); GL11.glDrawElements(GL11.GL_POINTS, countElements, GL11.GL_UNSIGNED_INT, 0); } else { GL11.glDrawArrays(GL11.GL_POINTS, 0, countElements); } renderShader.info.disableAttribs(); renderShader.unuse(); GL30.glBindVertexArray(0); }
From source file:com.xrbpowered.gl.res.StaticMesh.java
License:Open Source License
private void create(VertexInfo info, FloatBuffer vertexBuffer, ShortBuffer indexBuffer, int countElements, int verticesPerElement, boolean dynamic) { this.countElements = countElements; this.drawMode = getDrawMode(verticesPerElement); int usage = dynamic ? GL15.GL_DYNAMIC_DRAW : GL15.GL_STATIC_DRAW; vaoId = GL30.glGenVertexArrays();//from ww w . ja va2 s.co m GL30.glBindVertexArray(vaoId); vboId = GL15.glGenBuffers(); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboId); GL15.glBufferData(GL15.GL_ARRAY_BUFFER, vertexBuffer, usage); this.countAttribs = info.getAttributeCount(); info.initAttribPointers(); GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL30.glBindVertexArray(0); if (indexBuffer != null) { vboiId = GL15.glGenBuffers(); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vboiId); GL15.glBufferData(GL15.GL_ELEMENT_ARRAY_BUFFER, indexBuffer, usage); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); } }
From source file:com.xrbpowered.gl.res.StaticMesh.java
License:Open Source License
public void bindVAO() { GL30.glBindVertexArray(vaoId); }
From source file:com.xrbpowered.gl.res.StaticMesh.java
License:Open Source License
public void unbindVAO() { GL30.glBindVertexArray(0); }
From source file:com.xrbpowered.gl.res.StaticMesh.java
License:Open Source License
public void enableDraw(int[] attribMask) { GL30.glBindVertexArray(vaoId); if (attribMask == null) { for (int i = 0; i < countAttribs; i++) GL20.glEnableVertexAttribArray(i); } else {//w w w .j ava2 s .com for (int i = 0; i < attribMask.length; i++) GL20.glEnableVertexAttribArray(attribMask[i]); } }