Expand/Shrink

glDeleteShader

Definition: include pGUI.e
include opengl.e

integer res = glDeleteShader(integer shader)
Description: delete a shader object

shader: Specifies the shader object to be deleted.
Returns 0 (the C api does not do that), typically shader = glDeleteShader(shader) is recommended to avoid the sort of accidents caused by keeping hold of a shader index that might soon get re-used, plus logic flow is easier if you are in a position to test for zero, and as below calling it twice is not going to be an issue.
pwa/p2js: Supported.
Notes: glDeleteShader frees the memory and invalidates the name associated with the shader object specified by shader.
This command effectively undoes the effects of a call to glCreateShader.

If a shader object to be deleted is attached to a program object, it will be flagged for deletion, but it will not be deleted until it is no longer attached to any program object, for any rendering context (i.e., it must be detached from wherever it was attached before it will be deleted). A value of 0 for shader will be silently ignored.

To determine whether an object has been flagged for deletion, call glGetShaderParameter(shader,GL_DELETE_STATUS).
Errors: GL_INVALID_VALUE is generated if shader is not a value generated by OpenGL.
Associated Gets: glGetAttachedShaders with the program object to be queried
glGetShaderParameter with arguments shader and GL_DELETE_STATUS
glIsShader
See Also: glCreateProgram, glCreateShader, glDetachShader, glUseProgram