List of usage examples for org.lwjgl.opengl GL30 glBindVertexArray
public static void glBindVertexArray(@NativeType("GLuint") int array)
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()); }