From OpenGL Wiki
Revision as of 09:57, 15 August 2013 by AlfonsesCategoryBot (talk | contribs) (Bot: Adding better formatting.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Core in version 4.6
Core since version 2.0

glDetachShader: Detaches a shader object from a program object to which it is attached

Function Definition

 void glDetachShader(GLuint program​, GLuint shader​);
Specifies the program object from which to detach the shader object.
Specifies the shader object to be detached.


glDetachShader detaches the shader object specified by shader​ from the program object specified by program​. This command can be used to undo the effect of the command glAttachShader.

If shader​ has already been flagged for deletion by a call to glDeleteShader and it is not attached to any other program object, it will be deleted after it has been detached.


GL_INVALID_VALUE is generated if either program​ or shader​ is a value that was not generated by OpenGL.

GL_INVALID_OPERATION is generated if program​ is not a program object.

GL_INVALID_OPERATION is generated if shader​ is not a shader object.

GL_INVALID_OPERATION is generated if shader​ is not attached to program​.

Associated Gets

glGetAttachedShaders with the handle of a valid program object

glGetShader with arguments shader​ and GL_DELETE_STATUS



See Also

glAttachShader, glCreateShader, glCreateProgram, glLinkProgram, glShaderSource


Copyright © 2003-2005 3Dlabs Inc. Ltd. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.