Example usage for org.lwjgl.opengl GL20 glDetachShader

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

Introduction

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

Prototype

public static void glDetachShader(@NativeType("GLuint") int program, @NativeType("GLuint") int shader) 

Source Link

Document

Detaches a shader object from a program object to which it is attached.

Usage

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   ww  w  . ja v a 2 s  .  co  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);/*  www  .j a  va2s.  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.oscim.gdx.LwjglGL20.java

License:Apache License

public void detachShader(int program, int shader) {
    GL20.glDetachShader(program, shader);
}

From source file:playn.java.JavaGL20.java

License:Apache License

@Override
public void glDetachShader(int program, int shader) {
    GL20.glDetachShader(program, shader);
}

From source file:processing.opengl.PLWJGL.java

License:Open Source License

@Override
public void detachShader(int program, int shader) {
    GL20.glDetachShader(program, shader);
}

From source file:renderEngine.ShaderProgram.java

/**
 * Cleans the memory from all shaders and the program itself.
 *//* ww  w . ja v  a 2 s  .  co  m*/
public final void cleanUp() {
    stop();
    GL20.glDetachShader(programID, vertexShaderID);
    GL20.glDetachShader(programID, fragmentShaderID);
    GL20.glDeleteShader(vertexShaderID);
    GL20.glDeleteShader(fragmentShaderID);
    GL20.glDeleteProgram(programID);
}

From source file:se.angergard.engine.graphics.ShaderProgram.java

License:Apache License

/** Links the program and validates it
 * @return This ShaderProgram *//*w ww  .j ava  2  s  . c o  m*/
public ShaderProgram compileProgram() {
    GL20.glLinkProgram(program);

    if (program == -1) {
        System.err.println("ShaderProgram wasn't succsessfully created");
    }

    String error = GL20.glGetProgramInfoLog(program, GL20.GL_INFO_LOG_LENGTH);
    if (!error.equals("")) {
        System.out.println(error);
    }

    GL20.glValidateProgram(program);

    if (vertexShader != -1) {
        GL20.glDetachShader(program, vertexShader);
        GL20.glDeleteShader(vertexShader);
    }
    if (fragmentShader != -1) {
        GL20.glDetachShader(program, fragmentShader);
        GL20.glDeleteShader(fragmentShader);
    }
    if (geometryShader != -1) {
        GL20.glDetachShader(program, geometryShader);
        GL20.glDeleteShader(geometryShader);
    }
    return this;
}

From source file:thebounzer.org.lwgldemo.glutils.ShaderProgram.java

License:Open Source License

private void deleteShader(GenericShader shader) {
    GL20.glDetachShader(pId, shader.getShaderId());
    GL20.glDeleteShader(shader.getShaderId());
}

From source file:tk.ivybits.engine.gl.GL.java

License:Open Source License

public static void glDetachShader(int a, int b) {
    GL20.glDetachShader(a, b);
}

From source file:vertigo.graphics.lwjgl.ShaderUtils.java

License:Open Source License

public static int attachShaders(String vertexCode, String fragmentCode) throws Exception {
    int vertexShaderProgram;
    int fragmentShaderProgram;
    int shaderprogram;
    String log = "";

    vertexShaderProgram = compileShader(vertexCode, GL20.GL_VERTEX_SHADER);
    fragmentShaderProgram = compileShader(fragmentCode, GL20.GL_FRAGMENT_SHADER);

    shaderprogram = GL20.glCreateProgram();
    GL20.glAttachShader(shaderprogram, vertexShaderProgram);
    GL20.glAttachShader(shaderprogram, fragmentShaderProgram);
    GL20.glLinkProgram(shaderprogram);/*from  w w  w .  j  a  v  a 2  s  . c o  m*/

    //grab our info log
    String infoLog = GL20.glGetProgramInfoLog(shaderprogram,
            GL20.glGetProgrami(shaderprogram, GL20.GL_INFO_LOG_LENGTH));

    //if some log exists, append it 
    if (infoLog != null && infoLog.trim().length() != 0)
        log += infoLog;

    //if the link failed, throw some sort of exception
    if (GL20.glGetProgrami(shaderprogram, GL20.GL_LINK_STATUS) == GL11.GL_FALSE)
        throw new LWJGLException("Failure in linking program. Error log:\n" + infoLog);

    //detach and delete the shaders which are no longer needed
    GL20.glDetachShader(shaderprogram, vertexShaderProgram);
    GL20.glDetachShader(shaderprogram, fragmentShaderProgram);
    GL20.glDeleteShader(vertexShaderProgram);
    GL20.glDeleteShader(fragmentShaderProgram);

    GL20.glValidateProgram(shaderprogram);

    return shaderprogram;
}