List of usage examples for org.lwjgl.opengl GL20 glDeleteShader
public static void glDeleteShader(@NativeType("GLuint") int shader)
From source file:com.google.gapid.glviewer.gl.Shader.java
License:Apache License
private void detachShaders() { int[] shaders = getAttachedShaders(handle); for (int i = 0; i < shaders.length; i++) { GL20.glDetachShader(handle, shaders[i]); GL20.glDeleteShader(shaders[i]); }/*from w ww . j a v a 2s .c om*/ }
From source file:com.google.gapid.glviewer.gl.Shader.java
License:Apache License
private boolean attachShaders(String vertexSource, String fragmentSource) { int vertexShader = createShader(GL20.GL_VERTEX_SHADER, vertexSource); if (vertexShader < 0) { return false; }// w ww. ja v a 2 s .c o m int fragmentShader = createShader(GL20.GL_FRAGMENT_SHADER, fragmentSource); if (fragmentShader < 0) { GL20.glDeleteShader(vertexShader); return false; } GL20.glAttachShader(handle, vertexShader); GL20.glAttachShader(handle, fragmentShader); return true; }
From source file:com.google.gapid.glviewer.gl.Shader.java
License:Apache License
private static int createShader(int type, String source) { int shader = GL20.glCreateShader(type); GL20.glShaderSource(shader, source); GL20.glCompileShader(shader);//from w w w. j a v a2 s. co m if (GL20.glGetShaderi(shader, GL20.GL_COMPILE_STATUS) != GL11.GL_TRUE) { LOG.log(WARNING, "Failed to compile shader:\n" + GL20.glGetShaderInfoLog(shader) + "\n\nSource:\n" + source); GL20.glDeleteShader(shader); return -1; } return shader; }
From source file:com.grillecube.client.opengl.GLShader.java
@Override public void delete() { GL20.glDeleteShader(this._id); }
From source file:com.kauridev.lunarfever.graphics.ShaderProgram.java
License:Open Source License
private void disposeShaders() { if (vert != 0) { GL20.glDetachShader(program, vert); GL20.glDeleteShader(vert); vert = 0;/*from w ww. j a v a 2 s . co m*/ } if (frag != 0) { GL20.glDetachShader(program, frag); GL20.glDeleteShader(frag); frag = 0; } }
From source file:com.opengrave.og.resources.ShaderProgram.java
License:Open Source License
public void compile() { Util.checkErr();//from w w w.j a va 2 s . c o m PID = GL20.glCreateProgram(); Util.checkErr(); vert = loadShader(sfv.getSource(), GL20.GL_VERTEX_SHADER); Util.checkErr(); frag = loadShader(sff.getSource(), GL20.GL_FRAGMENT_SHADER); Util.checkErr(); GL20.glAttachShader(PID, vert); Util.checkErr(); GL20.glAttachShader(PID, frag); Util.checkErr(); GL20.glLinkProgram(PID); Util.checkErr(); System.out.println(GL20.glGetProgramInfoLog(PID, 2000)); Util.checkErr(); GL20.glValidateProgram(PID); Util.checkErr(); // System.out.println("Compiled " + label + " as number " + PID); if (GL20.glGetProgrami(PID, GL20.GL_LINK_STATUS) == GL11.GL_FALSE) { new DebugExceptionHandler(new Exception(), label, GL20.glGetShaderInfoLog(PID, 2000), GL20.glGetProgramInfoLog(PID, 2000)); // System.out.println("Failed to link " + label); // System.out.println(sfv.getSource()); // System.out.println(sff.getSource()); // Util.checkErr(); // printShaderLogs(); } Util.checkErr(); GL20.glDetachShader(PID, vert); Util.checkErr(); GL20.glDetachShader(PID, frag); GL20.glDeleteShader(vert); Util.checkErr(); GL20.glDeleteShader(frag); Util.checkErr(); }
From source file:com.redthirddivision.quad.rendering.shaders.Shader.java
License:Apache License
public void cleanUp() { stop();/*from ww w. j a v a 2 s . c om*/ GL20.glDetachShader(programID, vertexID); GL20.glDetachShader(programID, fragmentID); GL20.glDeleteShader(vertexID); GL20.glDeleteShader(fragmentID); GL20.glDeleteProgram(programID); }
From source file:com.samrj.devil.gl.Shader.java
@Override void delete() { if (state == State.DELETED) return; GL20.glDeleteShader(id); state = State.DELETED; }
From source file:com.timvisee.voxeltex.module.shader.raw.RawShader.java
License:Open Source License
@Override public int compile() { // Show a status message System.out.print("Compiling shader... "); // Create a new OpenGL shader program int program = GL20.glCreateProgram(); // Shader IDs int vertexId = 0; int fragmentId = 0; // Compile the vertex shader if available if (hasVertexShader()) { // Create the vertex shader vertexId = GL20.glCreateShader(GL20.GL_VERTEX_SHADER); // Attach the vertex shader source and compile it GL20.glShaderSource(vertexId, vertexSource); GL20.glCompileShader(vertexId);//from ww w . j a v a2 s .c o m // Check for compiling errors if (GL20.glGetShaderi(vertexId, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) { // Show an error message System.out.println("FAIL\nFailed to compile the vertex shader"); System.out.println(GL20.glGetShaderInfoLog(vertexId)); // Delete the shader before returning GL20.glDeleteShader(vertexId); throw new RuntimeException("Failed to compile the vertex shader"); } } // Compile the fragment shader if available if (hasFragmentShader()) { // Create the fragment shader fragmentId = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER); // Attach the fragment shader source and compile it GL20.glShaderSource(fragmentId, fragmentSource); GL20.glCompileShader(fragmentId); // Check for compiling errors if (GL20.glGetShaderi(fragmentId, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) { // Show an error message System.out.println("FAIL\nFailed to compile the fragment shader"); System.out.println(GL20.glGetShaderInfoLog(fragmentId)); // Delete the shader before returning GL20.glDeleteShader(fragmentId); throw new RuntimeException("Failed to compile the vertex shader"); } } // Attach all compiled shaders if (hasVertexShader()) GL20.glAttachShader(program, vertexId); if (hasFragmentShader()) GL20.glAttachShader(program, fragmentId); // Link the shader program to OpenGL and link it GL20.glLinkProgram(program); GL20.glValidateProgram(program); // Shaders have been attached to the program, delete their compiled sources to save memory if (hasVertexShader()) GL20.glDeleteShader(vertexId); if (hasFragmentShader()) GL20.glDeleteShader(fragmentId); // Show a status message System.out.println("OK"); // Return the created OpenGL shader program return program; }
From source file:com.wicpar.sinkingsimulatorclassic.graphics.Shader.java
License:Open Source License
public Shader delete() { if (ID != null) { GL20.glDeleteShader(ID); ID = null; } return this; }