# glDeleteProgram

Definition: | include pGUI.e include opengl.e integer res = glDeleteProgram(integer program)
Description: | delete a program object program: Specifies the program object to be deleted. Returns 0 (the C api does not do that), typically program = glDeleteProgram(program) is recommended to avoid the sort of accidents caused by keeping hold of a program 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: | glDeleteProgram() frees the memory and invalidates the name associated with the program object specified by program. This command effectively undoes the effects of a call to glCreateProgram(). If a program object is in use as part of current rendering state, it will be flagged for deletion, but it will not be deleted until it is no longer part of current state for any rendering context. If a program object to be deleted has shader objects attached to it, those shader objects will be automatically detached but not deleted unless they have already been flagged for deletion by a previous call to glDeleteShader(). A value of 0 for program will be silently ignored. To determine whether a program object has been flagged for deletion, call glGetProgramParameter(program, GL_DELETE_STATUS).
Errors: | GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.
Associated Gets: | glGet with argument GL_CURRENT_PROGRAM glGetProgramParameter with arguments program and GL_DELETE_STATUS glIsProgram
See Also: | glCreateProgram, glCreateShader, glDeleteShader, glDetachShader, glUseProgram