Example usage for org.lwjgl.opengl GL30 glBindVertexArray

List of usage examples for org.lwjgl.opengl GL30 glBindVertexArray

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL30 glBindVertexArray.

Prototype

public static void glBindVertexArray(@NativeType("GLuint") int array) 

Source Link

Document

Binds a vertex array object

Usage

From source file:org.bonsaimind.badgersvoyage.opengl.RenderObject.java

License:Open Source License

protected void createOpenGL(int programId) {
    modelMatrix = new Matrix4f();
    modelMatrixLocation = GL20.glGetUniformLocation(programId, "modelMatrix");
    modelMatrixBuffer = BufferUtils.createFloatBuffer(16);

    verticesCount = vertices.length / 3;

    verticesBuffer = BufferUtils.createFloatBuffer(vertices.length);
    verticesBuffer.put(vertices);//  w ww .j  a va  2s  .  c o  m
    verticesBuffer.flip();

    vaoId = GL30.glGenVertexArrays();
    GL30.glBindVertexArray(vaoId);

    vboId = GL15.glGenBuffers();
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboId);
    GL15.glBufferData(GL15.GL_ARRAY_BUFFER, verticesBuffer, GL15.GL_STATIC_DRAW);
    GL20.glVertexAttribPointer(0, 3, GL11.GL_FLOAT, false, 0, 0);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);

    GL30.glBindVertexArray(0);
}

From source file:org.easygl.opengl.primitives.VertexArrayObject.java

protected final void bind() {
    GL30.glBindVertexArray(this.id);
}

From source file:org.easygl.opengl.primitives.VertexArrayObject.java

protected final void unbind() {
    GL30.glBindVertexArray(0);
}

From source file:org.obsidianbox.obsidian.renderer.GuiRenderer.java

License:MIT License

@Override
public void render() {
    // Snapshot Minecraft rendering
    final int mcProgId = GL11.glGetInteger(GL20.GL_CURRENT_PROGRAM);
    final int mcVAID = GL11.glGetInteger(GL11.GL_VERTEX_ARRAY);

    updateScaledAttributes();/*from w w  w  .  ja  va2 s.c om*/

    LWJGLUtil.checkForGLError();
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    pipeline.run(context);
    GL11.glDisable(GL11.GL_BLEND);
    LWJGLUtil.checkForGLError();

    GL20.glUseProgram(mcProgId);
    GL30.glBindVertexArray(mcVAID);
    LWJGLUtil.checkForGLError();
}

From source file:org.spout.engine.renderer.GL30BatchVertexRenderer.java

License:Open Source License

/**
 * Batch Renderer using OpenGL 3.0 mode.
 * @param renderMode Mode to render in/*from w w w. j a v a  2 s.  c o m*/
 */
public GL30BatchVertexRenderer(int renderMode) {
    super(renderMode);
    vao = GL30.glGenVertexArrays();
    GL30.glBindVertexArray(vao);

    vertexBuffers.put(0, new VertexBufferImpl("vPosition", 4, 0));
}

From source file:org.spout.engine.renderer.GL30BatchVertexRenderer.java

License:Open Source License

@Override
protected void doFlush() {
    GL30.glBindVertexArray(vao);

    FloatBuffer vBuffer = BufferUtils.createFloatBuffer(vertexBuffer.size());
    vBuffer.clear();/*  w  ww. j a  v  a2  s .c o  m*/
    vBuffer.put(vertexBuffer.toArray());
    vBuffer.flip();

    vertexBuffers.get(0).flush(vBuffer);

    if (useColors) {
        if (vertexBuffers.get(1) == null) {
            vertexBuffers.put(1, new VertexBufferImpl("vColor", 4, 1));
        }

        vBuffer.clear();
        vBuffer.put(colorBuffer.toArray());
        vBuffer.flip();

        vertexBuffers.get(1).flush(vBuffer);

    }
    if (useNormals) {

        if (vertexBuffers.get(2) == null) {
            vertexBuffers.put(2, new VertexBufferImpl("vNormal", 4, 2));
        }

        vBuffer.clear();
        vBuffer.put(normalBuffer.toArray());
        vBuffer.flip();

        vertexBuffers.get(2).flush(vBuffer);
    }
    if (useTextures) {

        if (vertexBuffers.get(3) == null) {
            vertexBuffers.put(3, new VertexBufferImpl("vTexCoord0", 2, 3));
        }

        vBuffer = BufferUtils.createFloatBuffer(uvBuffer.size());
        vBuffer.clear();
        vBuffer.put(uvBuffer.toArray());
        vBuffer.flip();

        vertexBuffers.get(3).flush(vBuffer);
    }

}

From source file:org.spout.engine.renderer.GL30BatchVertexRenderer.java

License:Open Source License

/**
 * Draws this batch//from   w w w.j a  v  a  2  s.  c o m
 */
@Override
public void doRender(RenderMaterial material, int startVert, int endVert) {

    GL30.glBindVertexArray(vao);

    material.assign();

    for (VertexBufferImpl vb : vertexBuffers.valueCollection()) {
        vb.bind();
        GL20.glEnableVertexAttribArray(vb.getLayout());
        GL20.glVertexAttribPointer(vb.getLayout(), vb.getElements(), GL11.GL_FLOAT, false, 0, 0);
        //activeMaterial.getShader().enableAttribute(vb.getName(), vb.getElements(), GL11.GL_FLOAT, 0, 0, vb.getLayout());         
    }

    GL11.glDrawArrays(renderMode, startVert, endVert);

    for (VertexBufferImpl vb : vertexBuffers.valueCollection()) {
        GL20.glDisableVertexAttribArray(vb.getLayout());
    }

}

From source file:org.spout.engine.renderer.GL40BatchVertexRenderer.java

License:Open Source License

@Override
protected boolean doFlush(boolean force) {
    if (flushingBuffer.flush(force)) {
        GL30.glBindVertexArray(vao);
        SpoutRenderer.checkGLError();/*from   ww  w . j  a v  a  2 s.c  om*/

        if (currentBuffer != null) {
            currentBuffer.unbind();
            for (int layout : currentBuffer.getLayout()) {
                GL20.glDisableVertexAttribArray(layout);
                SpoutRenderer.checkGLError();
            }
        }

        flushingBuffer.bind(true);

        for (int layout : flushingBuffer.getLayout()) {
            GL20.glEnableVertexAttribArray(layout);
            SpoutRenderer.checkGLError();
        }

        GL30.glBindVertexArray(0);
        SpoutRenderer.checkGLError();
        return true;
    }
    return false;
}

From source file:org.spout.engine.renderer.GL40BatchVertexRenderer.java

License:Open Source License

/**
 * Draws this batch/*from   w  w w  .j  ava  2 s .co  m*/
 */
@Override
public void doDraw(RenderMaterial material, int elements, int instances) {
    GL30.glBindVertexArray(vao);
    SpoutRenderer.checkGLError();

    material.assign();

    GL31.glDrawArraysInstanced(renderMode, 0, elements, instances);
    SpoutRenderer.checkGLError();
}

From source file:org.spout.engine.renderer.GLBatchInstanceRenderer.java

License:Open Source License

/**
 * Draws this batch/*from   w w  w . ja  va 2s . co  m*/
 */
@Override
public void doDraw(RenderMaterial material, int elements, int instances) {
    GL30.glBindVertexArray(vao);
    SpoutRenderer.checkGLError();

    material.assign();

    //System.out.println("glDrawArrays");
    // RenderModer, ? , Type of index of instance, ? , ?
    GL31.glDrawArraysInstanced(renderMode, 0, elements, instances);
    SpoutRenderer.checkGLError();

    //GL30.glBindVertexArray(0); //Run without
}