Example usage for org.lwjgl.opengl GL15 glBindBuffer

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

Introduction

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

Prototype

public static void glBindBuffer(@NativeType("GLenum") int target, @NativeType("GLuint") int buffer) 

Source Link

Document

Binds a named buffer object.

Usage

From source file:org.terasology.rendering.assets.skeletalmesh.SkeletalMesh.java

License:Apache License

public void postRender() {
    glDisableClientState(GL_NORMAL_ARRAY);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    glDisableClientState(GL_VERTEX_ARRAY);

    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
    GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0);
}

From source file:org.terasology.rendering.assets.skeletalmesh.SkeletalMesh.java

License:Apache License

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);/*  www  .  jav  a  2 s .com*/
        vertBuffer.put(vert.y);
        vertBuffer.put(vert.z);
        Vector3f norm = normals.get(i);
        vertBuffer.put(norm.x);
        vertBuffer.put(norm.y);
        vertBuffer.put(norm.z);
    }
    vertBuffer.flip();
    VertexBufferObjectManager.getInstance().bufferVboData(vboPosNormBuffer, vertBuffer, GL15.GL_DYNAMIC_DRAW);

    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboPosNormBuffer);
    glVertexPointer(VECTOR3_SIZE, GL_FLOAT, STRIDE, 0);
    glNormalPointer(GL_FLOAT, STRIDE, NORMAL_OFFSET);

    GL11.glDrawElements(GL11.GL_TRIANGLES, indices.size(), GL_UNSIGNED_INT, 0);

    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
}

From source file:org.terasology.rendering.opengl.OpenGLMesh.java

License:Apache License

public void preRender() {
    if (!isDisposed()) {
        glEnableClientState(GL_VERTEX_ARRAY);
        if (hasTexCoord0 || hasTexCoord1) {
            glEnableClientState(GL_TEXTURE_COORD_ARRAY);
        }/*from w w w  . j  a v a 2 s.c om*/
        if (hasColor) {
            glEnableClientState(GL_COLOR_ARRAY);
        }
        if (hasNormal) {
            glEnableClientState(GL_NORMAL_ARRAY);
        }

        GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboVertexBuffer);
        GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vboIndexBuffer);

        glVertexPointer(VERTEX_SIZE, GL11.GL_FLOAT, stride, vertexOffset);

        if (hasTexCoord0) {
            GL13.glClientActiveTexture(GL13.GL_TEXTURE0);
            glTexCoordPointer(TEX_COORD_0_SIZE, GL11.GL_FLOAT, stride, texCoord0Offset);
        }

        if (hasTexCoord1) {
            GL13.glClientActiveTexture(GL13.GL_TEXTURE1);
            glTexCoordPointer(TEX_COORD_1_SIZE, GL11.GL_FLOAT, stride, texCoord1Offset);
        }

        if (hasColor) {
            glColorPointer(COLOR_SIZE, GL11.GL_FLOAT, stride, colorOffset);
        }
        if (hasNormal) {
            glNormalPointer(GL11.GL_FLOAT, stride, normalOffset);
        }
    } else {
        logger.error("Attempted to render disposed mesh: {}", getURI());
    }
}

From source file:org.terasology.rendering.opengl.OpenGLMesh.java

License:Apache License

public void postRender() {
    if (!isDisposed()) {
        if (hasNormal) {
            glDisableClientState(GL_NORMAL_ARRAY);
        }/*from w ww  .j  av  a  2  s. com*/
        if (hasColor) {
            glDisableClientState(GL_COLOR_ARRAY);
        }
        if (hasTexCoord0 || hasTexCoord1) {
            glDisableClientState(GL_TEXTURE_COORD_ARRAY);
        }
        glDisableClientState(GL_VERTEX_ARRAY);

        GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
        GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0);
    } else {
        logger.error("Attempted to render disposed mesh: {}", getURI());
    }
}

From source file:org.terasology.rendering.opengl.OpenGLSkeletalMesh.java

License:Apache License

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);//from  w  w  w  .  j av  a  2 s .c o  m
        vertBuffer.put(vert.y);
        vertBuffer.put(vert.z);
        Vector3f norm = normals.get(i);
        vertBuffer.put(norm.x);
        vertBuffer.put(norm.y);
        vertBuffer.put(norm.z);
    }
    vertBuffer.flip();
    VertexBufferObjectUtil.bufferVboData(vboPosNormBuffer, vertBuffer, GL15.GL_DYNAMIC_DRAW);

    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 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);
}

From source file:org.terasology.rendering.primitives.ChunkMesh.java

License:Apache License

private void renderVbo(int id) {
    if (lock.tryLock()) {
        try {//from w  ww  . j  av  a2 s.  co  m
            if (vertexBuffers[id] <= 0 || disposed) {
                return;
            }

            glEnableClientState(GL_VERTEX_ARRAY);
            glEnableClientState(GL_TEXTURE_COORD_ARRAY);
            glEnableClientState(GL_COLOR_ARRAY);
            glEnableClientState(GL_NORMAL_ARRAY);

            GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, idxBuffers[id]);
            GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vertexBuffers[id]);

            glVertexPointer(SIZE_VERTEX, GL11.GL_FLOAT, STRIDE, OFFSET_VERTEX);

            GL13.glClientActiveTexture(GL13.GL_TEXTURE0);
            glTexCoordPointer(SIZE_TEX0, GL11.GL_FLOAT, STRIDE, OFFSET_TEX_0);

            GL13.glClientActiveTexture(GL13.GL_TEXTURE1);
            glTexCoordPointer(SIZE_TEX1, GL11.GL_FLOAT, STRIDE, OFFSET_TEX_1);

            glColorPointer(SIZE_COLOR * 4, GL11.GL_UNSIGNED_BYTE, STRIDE, OFFSET_COLOR);

            glNormalPointer(GL11.GL_FLOAT, STRIDE, OFFSET_NORMAL);

            GL11.glDrawElements(GL11.GL_TRIANGLES, vertexCount[id], GL11.GL_UNSIGNED_INT, 0);

            GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
            GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0);

            glDisableClientState(GL_NORMAL_ARRAY);
            glDisableClientState(GL_COLOR_ARRAY);
            glDisableClientState(GL_TEXTURE_COORD_ARRAY);
            glDisableClientState(GL_VERTEX_ARRAY);

        } finally {
            lock.unlock();
        }
    }
}

From source file:org.terasology.rendering.primitives.Mesh.java

License:Apache License

public void preRender() {
    glEnableClientState(GL_VERTEX_ARRAY);
    if (hasTexCoord0 || hasTexCoord1)
        glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    if (hasColor)
        glEnableClientState(GL_COLOR_ARRAY);
    if (hasNormal)
        glEnableClientState(GL_NORMAL_ARRAY);

    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboVertexBuffer);
    GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vboIndexBuffer);

    glVertexPointer(VERTEX_SIZE, GL11.GL_FLOAT, stride, vertexOffset);

    if (hasTexCoord0) {
        GL13.glClientActiveTexture(GL13.GL_TEXTURE0);
        glTexCoordPointer(TEX_COORD_0_SIZE, GL11.GL_FLOAT, stride, texCoord0Offset);
    }/*from w  ww. ja va  2s  .c  o  m*/

    if (hasTexCoord1) {
        GL13.glClientActiveTexture(GL13.GL_TEXTURE1);
        glTexCoordPointer(TEX_COORD_1_SIZE, GL11.GL_FLOAT, stride, texCoord1Offset);
    }

    if (hasColor)
        glColorPointer(COLOR_SIZE, GL11.GL_FLOAT, stride, colorOffset);
    if (hasNormal)
        glNormalPointer(GL11.GL_FLOAT, stride, normalOffset);
}

From source file:org.terasology.rendering.primitives.Mesh.java

License:Apache License

public void postRender() {
    if (hasNormal)
        glDisableClientState(GL_NORMAL_ARRAY);
    if (hasColor)
        glDisableClientState(GL_COLOR_ARRAY);
    if (hasTexCoord0 || hasTexCoord1)
        glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    glDisableClientState(GL_VERTEX_ARRAY);

    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
    GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0);
}

From source file:org.terasology.rendering.VertexBufferObjectUtil.java

License:Apache License

public static void bufferVboData(int id, FloatBuffer buffer, int drawMode) {
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, id);
    GL15.glBufferData(GL15.GL_ARRAY_BUFFER, buffer, drawMode);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
}

From source file:org.terasology.rendering.VertexBufferObjectUtil.java

License:Apache License

public static void bufferVboData(int id, IntBuffer buffer, int drawMode) {
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, id);
    GL15.glBufferData(GL15.GL_ARRAY_BUFFER, buffer, drawMode);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
}