List of usage examples for org.lwjgl.opengl ARBShaderObjects glDetachObjectARB
public static native void glDetachObjectARB(@NativeType("GLhandleARB") int containerObj, @NativeType("GLhandleARB") int attachedObj);
From source file:com.ardor3d.scene.state.lwjgl.LwjglShaderObjectsStateUtil.java
License:Open Source License
/** Removes the geometry shader */ private static void removeGeomShader(final GLSLShaderObjectsState state) { if (state._geometryShaderID != -1) { ARBShaderObjects.glDetachObjectARB(state._programID, state._geometryShaderID); ARBShaderObjects.glDeleteObjectARB(state._geometryShaderID); }//from w w w.j a v a 2 s . co m }
From source file:com.ardor3d.scene.state.lwjgl.LwjglShaderObjectsStateUtil.java
License:Open Source License
/** Removes the fragment shader */ private static void removeFragShader(final GLSLShaderObjectsState state) { if (state._fragmentShaderID != -1) { ARBShaderObjects.glDetachObjectARB(state._programID, state._fragmentShaderID); ARBShaderObjects.glDeleteObjectARB(state._fragmentShaderID); }//from w w w . j ava 2s . c o m }
From source file:com.ardor3d.scene.state.lwjgl.LwjglShaderObjectsStateUtil.java
License:Open Source License
/** * Removes the vertex shader//w ww . j a v a 2s . c o m */ private static void removeVertShader(final GLSLShaderObjectsState state) { if (state._vertexShaderID != -1) { ARBShaderObjects.glDetachObjectARB(state._programID, state._vertexShaderID); ARBShaderObjects.glDeleteObjectARB(state._vertexShaderID); } }
From source file:com.ardor3d.scene.state.lwjgl.LwjglShaderObjectsStateUtil.java
License:Open Source License
/** Removes the tessellation control shader */ private static void removeTessControlShader(final GLSLShaderObjectsState state) { if (state._tessellationControlShaderID != -1) { ARBShaderObjects.glDetachObjectARB(state._programID, state._tessellationControlShaderID); ARBShaderObjects.glDeleteObjectARB(state._tessellationControlShaderID); }// w ww . ja va 2 s. c o m }
From source file:com.ardor3d.scene.state.lwjgl.LwjglShaderObjectsStateUtil.java
License:Open Source License
/** Removes the tessellation evaluation shader */ private static void removeTessEvalShader(final GLSLShaderObjectsState state) { if (state._tessellationEvaluationShaderID != -1) { ARBShaderObjects.glDetachObjectARB(state._programID, state._tessellationEvaluationShaderID); ARBShaderObjects.glDeleteObjectARB(state._tessellationEvaluationShaderID); }/*from w w w . ja v a 2s . c o m*/ }
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 .ja v a 2 s . c o m */ 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); }