GLAPI/glDetachShader: Difference between revisions

From OpenGL Wiki
Jump to navigation Jump to search
m Renaming category: 'API Reference 4' to 'Core API Reference'.
m Bot: Adding better formatting.
 
(4 intermediate revisions by the same user not shown)
Line 8: Line 8:
== Function Definition ==
== Function Definition ==


   void '''glDetachShader'''(GLuint ''program'', GLuint ''shader'');
   void '''glDetachShader'''(GLuint {{param|program}}, GLuint {{param|shader}});


; program
; program
Line 17: Line 17:
== Description ==
== 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 [[GLAPI/glAttachShader|glAttachShader]].
'''glDetachShader''' detaches the shader object specified by {{param|shader}} from the program object specified by {{param|program}}. This command can be used to undo the effect of the command {{apifunc|glAttachShader}}.


If ''shader'' has already been flagged for deletion by a call to [[GLAPI/glDeleteShader|glDeleteShader]] and it is not attached to any other program object, it will be deleted after it has been detached.
If {{param|shader}} has already been flagged for deletion by a call to {{apifunc|glDeleteShader}} and it is not attached to any other program object, it will be deleted after it has been detached.


== Errors ==
== Errors ==


{{code|GL_INVALID_VALUE}} is generated if either ''program'' or ''shader'' is a value that was not generated by OpenGL.
{{enum|GL_INVALID_VALUE}} is generated if either {{param|program}} or {{param|shader}} is a value that was not generated by OpenGL.


{{code|GL_INVALID_OPERATION}} is generated if ''program'' is not a program object.
{{enum|GL_INVALID_OPERATION}} is generated if {{param|program}} is not a program object.


{{code|GL_INVALID_OPERATION}} is generated if ''shader'' is not a shader object.
{{enum|GL_INVALID_OPERATION}} is generated if {{param|shader}} is not a shader object.


{{code|GL_INVALID_OPERATION}} is generated if ''shader'' is not attached to ''program''.
{{enum|GL_INVALID_OPERATION}} is generated if {{param|shader}} is not attached to {{param|program}}.


== Associated Gets ==
== Associated Gets ==


[[GLAPI/glGetAttachedShaders|glGetAttachedShaders]] with the handle of a valid program object
{{apifunc|glGetAttachedShaders}} with the handle of a valid program object


[[GLAPI/glGetShader|glGetShader]] with arguments ''shader'' and {{code|GL_DELETE_STATUS}}
{{apifunc|glGetShader}} with arguments {{param|shader}} and {{enum|GL_DELETE_STATUS}}


[[GLAPI/glIsProgram|glIsProgram]]
{{apifunc|glIsProgram}}


[[GLAPI/glIsShader|glIsShader]]
{{apifunc|glIsShader}}


== See Also ==
== See Also ==


[[GLAPI/glAttachShader|glAttachShader]]
{{apifunc|glAttachShader}}, {{apifunc|glCreateShader}}, {{apifunc|glCreateProgram}}, {{apifunc|glLinkProgram}}, {{apifunc|glShaderSource}}


== Copyright ==
== Copyright ==
Line 49: Line 49:
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/ http://opencontent.org/openpub/].
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/ http://opencontent.org/openpub/].


[[Category:GL 4 API Shader Program Creation|DetachShader]]
[[Category:Core API Reference|DetachShader]]
[[Category:Core API Reference|DetachShader]]
[[Category:Core API Ref Shader Program Creation|DetachShader]]
[[Category:Program Object API State Functions|DetachShader]]

Latest revision as of 09:57, 15 August 2013

glDetachShader
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​);
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

glGetShader with arguments shader​ and GL_DELETE_STATUS

glIsProgram

glIsShader

See Also

glAttachShader, glCreateShader, glCreateProgram, glLinkProgram, glShaderSource

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