Light | Dark

# docs.GL

OpenGL 4
OpenGL 3
OpenGL 2
OpenGL ES 3
OpenGL ES 2

# glDetachShader

## Name

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

## 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

## Tutorials

## API Version Support

| OpenGL ES API Version
--- | ---
Function Name | 2.0 | 3.0 | 3.1
glDetachShader | ✔ | ✔ | ✔

## See Also

glAttachShader

## Copyright

Copyright © 2003-2005 3Dlabs Inc. Ltd. Copyright © 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. https://opencontent.org/openpub/.

Think you can improve this page? Edit this page on GitHub.