glDetachShader 3G
glDetachShader detach a shader object from a program object

## C Specification

void `glDetachShader` GLuint program GLuint shader

## Parameters

program

  Specifies the program object from which to detach the shader object.

shader

  Specifies the shader object to be detached.

## Description

`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.

## Errors

`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

glGetShaderiv with arguments shader and `GL_DELETE_STATUS`

glIsProgram

glIsShader

## See Also

glAttachShader

## Copyright

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. http://opencontent.org/openpub/.