List of usage examples for org.lwjgl.opengl GL20 glDeleteProgram
public static void glDeleteProgram(@NativeType("GLuint") int program)
From source file:fr.ign.cogit.geoxygene.util.gl.GLProgram.java
License:Open Source License
/** * Mark all shaders and program for deletion *///from w w w . j av a 2s . c o m public synchronized void dispose() { if (this.programId != -1) { GLTools.glCheckError("before program " + this.getName() + " shader detach"); for (GLShader shader : this.shaders) { GL20.glDetachShader(this.programId, shader.getId()); } GLTools.glCheckError("before program " + this.getName() + " deletion"); GL20.glDeleteProgram(this.programId); GLTools.glCheckError("after program " + this.getName() + " deletion"); this.programId = -1; this.shaders.clear(); this.uniforms.clear(); this.uniforms_location.clear(); } }
From source file:io.root.gfx.glutils.GL.java
License:Apache License
public static void glDeleteProgram(int program) { GL20.glDeleteProgram(program); }
From source file:lessur.util.shader.ShaderManager.java
License:GNU General Public License
/** * Removes a program and all shaders associated with it * @param The id/index of the program/* www.java2 s . c om*/ */ public void removeProgram(int programID) { Set<Integer> shaders = programToShaders.get(programID); if (shaders == null) { throw new IllegalArgumentException("The programID " + programID + "does not exist"); } //detach Shaders from program for (int id : shaders) { if (has_opengl2) { GL20.glDetachShader(programID, id); } else if (has_arb) { ARBShaderObjects.glDetachObjectARB(programID, id); } } //Delete unused shaders for (int id : shaders) { Set<Integer> progs = shaderToPrograms.get(id); progs.remove(programID); if (progs.isEmpty()) { if (has_opengl2) { GL20.glDeleteShader(id); } shaderToPrograms.remove(id); } } //Delete Program if (has_opengl2) { GL20.glDeleteProgram(programID); } else if (has_arb) { ARBShaderObjects.glDeleteObjectARB(programID); } programToShaders.remove(programID); }
From source file:main.java.com.YeAJG.game.entity.Entity.java
License:Open Source License
public void destroy() { // Delete the Program GL20.glUseProgram(0);//w ww.j a v a2 s . co m GL20.glDeleteProgram(pId); // Select the VAO GL30.glBindVertexArray(vaoId); // Disable the VBO index from the VAO attributes list GL20.glDisableVertexAttribArray(0); GL20.glDisableVertexAttribArray(1); // Delete the vertex VBO GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL15.glDeleteBuffers(vboId); // Delete the index VBO GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); GL15.glDeleteBuffers(vboiId); // Delete the VAO GL30.glBindVertexArray(0); GL30.glDeleteVertexArrays(vaoId); }
From source file:me.thehutch.fusion.engine.render.opengl.gl20.OpenGL20Program.java
License:Open Source License
@Override public void dispose() { ensureCreated("Program must be created to dispose."); // Detach and delete each shader this.shaders.forEach((int shader) -> { GL20.glDetachShader(id, shader); GL20.glDeleteShader(shader);//from w ww . ja v a 2 s .c o m return true; }); // Delete the program GL20.glDeleteProgram(id); // Clear the shaders set this.shaders.clear(); // Clear the uniforms map this.uniforms.clear(); // Check for errors RenderUtil.checkGLError(); // Dispose the program super.dispose(); }
From source file:net.neilcsmith.praxis.video.opengl.internal.ShaderProgram.java
License:Apache License
/** Disposes all resources associated with this shader. Must be called when the shader is no longer used. */ public void dispose() { GL20.glUseProgram(0);/*from w w w. j a v a 2s . co m*/ GL20.glDeleteShader(vertexShaderHandle); GL20.glDeleteShader(fragmentShaderHandle); GL20.glDeleteProgram(program); // if (shaders.get(Gdx.app) != null) shaders.get(Gdx.app).remove(this); }
From source file:net.smert.frameworkgl.opengl.helpers.ShaderHelper.java
License:Apache License
public void deleteProgram(int programID) { GL20.glDeleteProgram(programID); }
From source file:opengl.test.object.object.java
public final void deleteProgram() { // disable program this.unbind(); // detach shader GL20.glDetachShader(this.programID, this.vertexID); GL20.glDetachShader(this.programID, this.fragmentID); // delete shader GL20.glDeleteShader(this.vertexID); GL20.glDeleteShader(this.fragmentID); GL20.glDeleteProgram(this.programID); // delete vao GL30.glBindVertexArray(0);/*from www .j a v a 2 s. c o m*/ //GL30.glDeleteVertexArrays(this.vao); // delete vbo GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL15.glDeleteBuffers(this.vbo); //delete vbo GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); GL15.glDeleteBuffers(this.ebo); }
From source file:opengl.test.object.tree.testobject.leaf.java
public void deleteProgram() { // disable program this.unbind(); // detach shader GL20.glDetachShader(this.programID, this.vertexID); GL20.glDetachShader(this.programID, this.fragmentID); // delete shader GL20.glDeleteShader(this.vertexID); GL20.glDeleteShader(this.fragmentID); GL20.glDeleteProgram(this.programID); // delete vao GL30.glBindVertexArray(0);/*from w w w.j av a2s . co m*/ // delete vbo GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); GL15.glDeleteBuffers(this.vbo); //delete vbo GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); GL15.glDeleteBuffers(this.ebo); }
From source file:org.jogamp.glg2d.impl.shader.AbstractShaderPipeline.java
License:Apache License
@Override public void delete() { GL20.glDeleteProgram(programId); deleteShaders(); programId = 0; }