Example usage for org.lwjgl.opengl GL20 glDeleteShader

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

Introduction

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

Prototype

public static void glDeleteShader(@NativeType("GLuint") int shader) 

Source Link

Document

Deletes a shader object.

Usage

From source file:cuchaz.jfxgl.prism.JFXGLContext.java

License:Open Source License

@Override
public void deleteShader(int shaderId) {
    GL20.glDeleteShader(shaderId);
}

From source file:eu.over9000.veya.rendering.Program.java

License:Open Source License

public Program(final String shaderName, final String[] uniformNames) {
    final int vsID = Program.loadShader(
            Program.class.getResourceAsStream("/shaders/" + shaderName + "/vertex.glsl"),
            GL20.GL_VERTEX_SHADER);//  w w w .ja v  a  2 s .  com
    final int fsID = Program.loadShader(
            Program.class.getResourceAsStream("/shaders/" + shaderName + "/fragment.glsl"),
            GL20.GL_FRAGMENT_SHADER);

    this.id = GL20.glCreateProgram();
    GL20.glAttachShader(this.id, vsID);
    GL20.glAttachShader(this.id, fsID);

    GL20.glLinkProgram(this.id);
    Program.checkLinkage(this.id);

    //GL20.glValidateProgram(this.id);
    //Program.checkValidation(this.id);

    GL20.glDetachShader(this.id, vsID);
    GL20.glDetachShader(this.id, fsID);

    GL20.glDeleteShader(vsID);
    GL20.glDeleteShader(fsID);

    this.uniformLocations = new HashMap<>(uniformNames.length + 1, 1);
    for (final String name : uniformNames) {
        final int loc = GL20.glGetUniformLocation(this.id, name);
        this.uniformLocations.put(name, loc);
        System.out.println("UniformLoc for " + name + "=" + loc);
    }

    Util.checkGLError();
}

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

License:Apache License

public static void glDeleteShader(int shader) {
    GL20.glDeleteShader(shader);
}

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//from w  w w.  j a  v  a 2  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: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);
        return true;
    });/*from   w  w w  .  jav a 2s.co m*/
    // 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);//w w w.java  2s.c  om
    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 deleteShader(int shaderID) {
    GL20.glDeleteShader(shaderID);
}

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);/*  w  ww . j a va2  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   ww w.j av  a2 s  .  c o 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

protected void deleteShaders() {
    if (GL20.glIsShader(vertexShaderId)) {
        GL20.glDeleteShader(vertexShaderId);
        vertexShaderId = 0;/*from   www.j  a  v a  2s  .  c  o  m*/
    }
    if (GL20.glIsShader(geometryShaderId)) {
        GL20.glDeleteShader(geometryShaderId);
        geometryShaderId = 0;
    }
    if (GL20.glIsShader(fragmentShaderId)) {
        GL20.glDeleteShader(fragmentShaderId);
        fragmentShaderId = 0;
    }
}