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:fr.ign.cogit.geoxygene.appli.render.DisplayableTextRenderer.java

License:Open Source License

private void drawText() throws GLException {
    if (this.program == null || this.textImage == null) {
        Logger.getRootLogger().debug("The GeoxGLTextRenderer " + this.hashCode() + "is not ready yet");
        return;//from www .  ja v a2  s .c  o m
    }
    this.textImage.getRGB(0, 0, width, height, this.pixels, 0, width);
    this.buffer.rewind();
    for (int y = height - 1; y >= 0; y--) {
        for (int x = 0; x < width; x++) {
            int pixel = this.pixels[y * width + x];
            this.buffer.put((byte) (pixel >> 16 & 0xFF)); // Red component
            this.buffer.put((byte) (pixel >> 8 & 0xFF)); // Green component
            this.buffer.put((byte) (pixel >> 0 & 0xFF)); // Blue component
            this.buffer.put((byte) (pixel >> 24 & 0xFF)); // Alpha component
        }
    }
    this.buffer.rewind();
    glEnable(GL_TEXTURE_2D);
    GL13.glActiveTexture(GL13.GL_TEXTURE0 + 2);
    glBindTexture(GL_TEXTURE_2D, this.getTextTextureId());

    // Setup texture scaling filtering
    GL11.glTexParameteri(GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
    GL11.glTexParameteri(GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
    GL11.glTexImage2D(GL_TEXTURE_2D, 0, GL11.GL_RGBA8, width, height, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE,
            this.buffer);

    Integer fbow = (Integer) GLContext.getActiveGlContext()
            .getSharedUniform(GeoxygeneConstants.GL_VarName_FboWidth);
    Integer fboh = (Integer) GLContext.getActiveGlContext()
            .getSharedUniform(GeoxygeneConstants.GL_VarName_FboHeight);
    GL11.glViewport(0, 0, fbow, fboh);
    glDisable(GL11.GL_POLYGON_SMOOTH);
    GLContext.getActiveGlContext().setCurrentProgram(program);
    program.setUniform1i("colorTexture2", 2);
    GLTools.glCheckError("texture binding");

    GL11.glDepthMask(false);
    glDisable(GL11.GL_DEPTH_TEST);

    GL30.glBindVertexArray(LayerViewGLPanel.getScreenQuad().getVaoId());
    GLTools.glCheckError("before drawing textured quad VAO binding");

    program.setUniform(GeoxygeneConstants.GL_VarName_ObjectOpacityVarName, 1f);
    program.setUniform(GeoxygeneConstants.GL_VarName_GlobalOpacityVarName, 1f);
    glEnable(GL_BLEND);
    GL11.glBlendFunc(GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL);
    GLTools.glCheckError("blending set for textured quad");

    LwjglLayerRenderer.drawComplex(LayerViewGLPanel.getScreenQuad());
    GLTools.glCheckError("Drawing textured quad");

    GL30.glBindVertexArray(0); // unbind VAO
    GLTools.glCheckError("exiting Text rendering");
    glBindTexture(GL_TEXTURE_2D, 0); // unbind texture

}

From source file:fr.ign.cogit.geoxygene.appli.render.LwjglLayerRenderer.java

License:Open Source License

/**
 * Draw the Rendered FBO into the Ping Pong FBO
 * //from  w  w  w .j  a v  a 2  s . c om
 * @throws GLException
 */
private void drawInPingPongFBO() throws GLException {
    if (this.current_symbolizer == null) {
        logger.error("The current symbolizer is NULL");
        return;
    }
    // Get the blending mode of this symbolizer and the filter of the
    // current Layer.
    BlendingMode bmode = this.current_symbolizer.getBlendingMode();
    if (bmode == null) {
        bmode = GeoxygeneConstants.GL_VarName_DefaultBlendingMode;
    }

    LayerFilter layerfilter = ((AbstractLayer) this.getLayer()).getFilter();
    if (layerfilter == null)
        layerfilter = new LayerFilterIdentity();
    String program_name = "GLProgram-"
            + (bmode.toString() + "-" + layerfilter.getClass().getSimpleName()).toLowerCase();
    GLProgram p = GLContext.getActiveGlContext().getProgram(program_name);
    if (p == null) {
        GLProgramBuilder builder = new GLProgramBuilder();
        builder.addDelegateBuilder(new BlendingModeGLProgramBuilder(bmode, layerfilter));
        p = builder.build(program_name, null);
        if (p == null) {
            logger.warn("Failed to create the blending program " + bmode);
            logger.warn("Fallback to the default blending program "
                    + GeoxygeneConstants.GL_VarName_DefaultBlendingMode);
            bmode = GeoxygeneConstants.GL_VarName_DefaultBlendingMode;
            p = builder.build("GLProgram-"
                    + (bmode.toString() + "-" + LayerFilterIdentity.class.getSimpleName()).toLowerCase(), null);
        }
        if (p == null) {
            logger.fatal("Failed to create the blending program " + bmode + ". Exiting the rendering.");
            return;
        }
        GLContext.getActiveGlContext().addProgram(p);
    }
    GLContext.getActiveGlContext().setCurrentProgram(p);
    this.getLayerViewPanel().getGLCanvas().drawInPingPong(p);

    GL30.glBindVertexArray(LayerViewGLPanel.getScreenQuad().getVaoId());

    p.setUniform(GeoxygeneConstants.GL_VarName_ObjectOpacityVarName, 1f);
    p.setUniform(GeoxygeneConstants.GL_VarName_GlobalOpacityVarName, 1f);
    GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL);

    GLTools.glCheckError("before FBO drawing textured quad");
    LwjglLayerRenderer.drawComplex(LayerViewGLPanel.getScreenQuad());
    GLTools.glCheckError("FBO drawing textured quad");
    GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0);
    GL30.glBindVertexArray(0); // unbind VAO
    GLTools.glCheckError("exiting FBO rendering");
    glBindTexture(GL_TEXTURE_2D, 0); // unbind texture
}

From source file:game.entity.lwjgl.EntityRenderer.java

private void prepareTexturedModel(TexturedModel model) {
    RawModel rawModel = model.getRawModel();
    if (rawModel.doesContainInvertedNormals()) {
        GL11.glDisable(GL11.GL_CULL_FACE);
    }//from  w ww  .  j  a  v  a 2 s .  c om
    GL30.glBindVertexArray(rawModel.getVaoID());
    GL20.glEnableVertexAttribArray(VERTEX_POSITIONS);
    GL20.glEnableVertexAttribArray(TEXTURE_COORDS);
    GL20.glEnableVertexAttribArray(NORMAL_VECTORS);
    this.loadUniformFloat("shineDamper", model.getModelTexture().getShineDamper());
    this.loadUniformFloat("reflectivity", model.getModelTexture().getReflectivity());
    GL13.glActiveTexture(GL13.GL_TEXTURE0);
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, model.getModelTexture().getTextureID());

}

From source file:game.entity.lwjgl.EntityRenderer.java

private void unbindTexturedModel(TexturedModel model) {
    GL20.glDisableVertexAttribArray(VERTEX_POSITIONS);
    GL20.glDisableVertexAttribArray(TEXTURE_COORDS);
    GL20.glDisableVertexAttribArray(NORMAL_VECTORS);
    GL30.glBindVertexArray(0);
    if (model.getRawModel().doesContainInvertedNormals()) {
        GL11.glEnable(GL11.GL_CULL_FACE);
    }/*w  w  w.j a  v a 2 s . c  o  m*/
}

From source file:game.skybox.lwjgl.SkyboxRenderer.java

public void render() {
    GL30.glBindVertexArray(cube.getVaoID());
    GL20.glEnableVertexAttribArray(0);/*from w w  w . j ava 2s. c  om*/
    GL13.glActiveTexture(GL13.GL_TEXTURE0);
    GL11.glBindTexture(GL13.GL_TEXTURE_CUBE_MAP, texture);
    GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, cube.getVertexCount());
    GL20.glDisableVertexAttribArray(0);
    GL30.glBindVertexArray(0);
}

From source file:game.terrain.lwjgl.TerrainRenderer.java

/**
 *
 * @param terrain/*from   ww  w  .j  a v a 2 s.c  o m*/
 */
private void prepareTerrain(Terrain terrain) {
    RawModel rawModel = terrain.getModel();
    GL30.glBindVertexArray(rawModel.getVaoID());
    GL20.glEnableVertexAttribArray(VERTEX_POSITIONS);
    GL20.glEnableVertexAttribArray(TEXTURE_COORDS);
    GL20.glEnableVertexAttribArray(NORMAL_VECTORS);
    bindTextures(terrain);
}

From source file:game.terrain.lwjgl.TerrainRenderer.java

/**
 *
 *///w  ww . j  av a2s .  c o  m
private void unbindTexturedModel() {
    GL20.glDisableVertexAttribArray(VERTEX_POSITIONS);
    GL20.glDisableVertexAttribArray(TEXTURE_COORDS);
    GL20.glDisableVertexAttribArray(NORMAL_VECTORS);
    GL30.glBindVertexArray(0);
}

From source file:gui.lwjgl.GUIRenderer.java

@Override
public void render(GUIRenderable element) {
    GL30.glBindVertexArray(element.getGUIElement().getVaoID());
    GL20.glEnableVertexAttribArray(VERTEX_POSITIONS);
    GL20.glEnableVertexAttribArray(TEXTURE_COORDS);

    Matrix4f transformationMatrix = Maths.createTransformationMatrix(
            new Vector2f(((2.0f * element.getGUIElement().getPosition().x) / Display.getWidth() - 1),
                    -1 * ((2.0f * element.getGUIElement().getPosition().y) / Display.getHeight()) + 1f),
            element.getGUIElement().getRotation(),
            element.getGUIElement().getWidth() / (float) (Display.getWidth() / 2),
            element.getGUIElement().getHeight() / (float) (Display.getHeight() / 2));

    this.loadUniformMatrix("transformationMatrix", transformationMatrix);

    GL13.glActiveTexture(GL13.GL_TEXTURE0);
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, element.getGUIElement().getTexture().getTextureID());
    GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, 6);

    GL20.glDisableVertexAttribArray(VERTEX_POSITIONS);
    GL20.glDisableVertexAttribArray(TEXTURE_COORDS);
    GL30.glBindVertexArray(0);/*  w  w  w  .  j  a  v  a 2 s .com*/
}

From source file:io.root.gfx.glutils.GL.java

License:Apache License

public static void glBindVertexArray(int array) {
    GL30.glBindVertexArray(array);
}

From source file:main.EntityRenderer.java

private void prepareTextureModel(TextureModel model) {
    RawModel rawModel = model.getRawModel();
    GL30.glBindVertexArray(rawModel.getVaoId());
    GL20.glEnableVertexAttribArray(0);/*ww w  . j av  a  2 s.  c o m*/
    GL20.glEnableVertexAttribArray(1);
    GL20.glEnableVertexAttribArray(2);
    ModelTexture texture = model.getTexture();
    shader.loadShineVariables(texture.getShineDamper(), texture.getReflectivity());
    GL13.glActiveTexture(GL13.GL_TEXTURE0);
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, model.getTexture().getTextureId());
}