Example usage for org.lwjgl.opengl GL20 glDeleteProgram

List of usage examples for org.lwjgl.opengl GL20 glDeleteProgram

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL20 glDeleteProgram.

Prototype

public static void glDeleteProgram(@NativeType("GLuint") int program) 

Source Link

Document

Deletes a program object.

Usage

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;
}