Example usage for org.lwjgl.opengl GL15 GL_ARRAY_BUFFER

List of usage examples for org.lwjgl.opengl GL15 GL_ARRAY_BUFFER

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL15 GL_ARRAY_BUFFER.

Prototype

int GL_ARRAY_BUFFER

To view the source code for org.lwjgl.opengl GL15 GL_ARRAY_BUFFER.

Click Source Link

Document

Accepted by the target parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferParameteriv, and GetBufferPointerv.

Usage

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();/*ww  w. jav  a 2  s . co  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 updateVertexData(float[] vertexData) {
    vertexBuffer.clear();/*from  ww w.  j  a v a2s  .co  m*/
    vertexBuffer.put(vertexData);
    vertexBuffer.flip();
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboId);
    GL15.glBufferSubData(GL15.GL_ARRAY_BUFFER, 0, vertexBuffer);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
}

From source file:com.xrbpowered.gl.res.shaders.FeedbackVertices.java

License:Open Source License

public void updateIndexData(int[] indexData) {
    indexBuffer.clear();/*ww  w . ja  v a2s  . co  m*/
    indexBuffer.put(indexData);
    indexBuffer.flip();
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboiId);
    GL15.glBufferSubData(GL15.GL_ARRAY_BUFFER, 0, indexBuffer);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
}

From source file:com.xrbpowered.gl.res.shaders.FeedbackVertices.java

License:Open Source License

public void updateIndexData(Integer[] indexData) {
    indexBuffer.clear();/*from w  w  w  .  ja va2  s  .  com*/
    for (int i = 0; i < indexData.length; i++)
        indexBuffer.put(indexData[i]);
    indexBuffer.flip();
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboiId);
    GL15.glBufferSubData(GL15.GL_ARRAY_BUFFER, 0, indexBuffer);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
}

From source file:com.xrbpowered.gl.res.shaders.FeedbackVertices.java

License:Open Source License

public void transform() {
    GL30.glBindVertexArray(vaoId);/*from w w  w  .  j  a  v  a  2  s  . c  om*/
    GL11.glEnable(GL30.GL_RASTERIZER_DISCARD);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboId);

    transformShader.use();
    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 getFeedbackData(float[] dst) {
    feedbackBuffer.clear();/*  ww w  .  ja  va  2s  .c  o  m*/
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboFeedbackId);
    GL15.glGetBufferSubData(GL15.GL_ARRAY_BUFFER, 0, feedbackBuffer);
    feedbackBuffer.get(dst);
}

From source file:com.xrbpowered.gl.res.shaders.FeedbackVertices.java

License:Open Source License

public FloatBuffer getFeedbackData() {
    feedbackBuffer.clear();/* w w w. j a  v  a 2 s .  c om*/
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboFeedbackId);
    GL15.glGetBufferSubData(GL15.GL_ARRAY_BUFFER, 0, feedbackBuffer);
    return feedbackBuffer;
}

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 ww . j  a  v a2s .com*/
    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.shaders.InstanceBuffer.java

License:Open Source License

public InstanceBuffer(int divisor, int count, int attribId, int[] elemCount) {
    this.divisor = divisor;
    this.attribId = attribId;
    this.elemCount = elemCount;
    stride = 0;/*from ww  w .j  a v a2s  . co  m*/
    for (int i = 0; i < elemCount.length; i++) {
        stride += 4 * elemCount[i];
    }
    instanceBuffer = BufferUtils.createByteBuffer(count * stride).asFloatBuffer();

    iboId = GL15.glGenBuffers();
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, iboId);
    GL15.glBufferData(GL15.GL_ARRAY_BUFFER, count * stride, GL15.GL_STATIC_DRAW);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
    Client.checkError();
}

From source file:com.xrbpowered.gl.res.shaders.InstanceBuffer.java

License:Open Source License

public void updateInstanceData(float[] instanceData, int count) {
    instanceBuffer.clear();/*from  ww w . j  a v a2  s.co m*/
    instanceBuffer.put(instanceData, 0, count * stride / 4);
    instanceBuffer.flip();
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, iboId);
    GL15.glBufferSubData(GL15.GL_ARRAY_BUFFER, 0, instanceBuffer);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
    Client.checkError();
}