List of usage examples for org.lwjgl.opengl GL20 glDeleteShader
public static void glDeleteShader(@NativeType("GLuint") int shader)
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; } }