GLAPI/glUseProgramStages: Difference between revisions

From OpenGL Wiki
Jump to navigation Jump to search
4.0 API.
 
m Bot: Adding better formatting.
 
(10 intermediate revisions by 2 users not shown)
Line 9: Line 9:
== Function Definition ==
== Function Definition ==


   void '''glUseProgramStages'''(GLuint ''pipeline'', GLbitfield ''stages'', GLuint ''program'');
   void '''glUseProgramStages'''(GLuint {{param|pipeline}}, GLbitfield {{param|stages}}, GLuint {{param|program}});


; pipeline
; pipeline
: Specifies the program pipeline object to which to bind stages from ''program''.
: Specifies the program pipeline object to which to bind stages from {{param|program}}.
; stages
; stages
: Specifies a set of program stages to bind to the program pipeline object.
: Specifies a set of program stages to bind to the program pipeline object.
; program
; program
: Specifies the program object containing the shader executables to use in ''pipeline''.
: Specifies the program object containing the shader executables to use in {{param|pipeline}}.


== Description ==
== Description ==


'''glUseProgramStages''' binds executables from a program object associated with a specified set of shader stages to the program pipeline object given by ''pipeline''. ''pipeline'' specifies the program pipeline object to which to bind the executables. ''stages'' contains a logical combination of bits indicating the shader stages to use within ''program'' with the program pipeline object ''pipeline''. ''stages'' must be a logical combination of {{code|GL_VERTEX_SHADER_BIT}}, {{code|GL_TESS_CONTROL_SHADER_BIT}}, {{code|GL_TESS_EVALUATION_SHADER_BIT}}, {{code|GL_GEOMETRY_SHADER_BIT}}, and {{code|GL_FRAGMENT_SHADER_BIT}}. Additionally, the special value {{code|GL_ALL_SHADER_BITS}} may be specified to indicate that all executables contained in ''program'' should be installed in ''pipeline''.
'''glUseProgramStages''' binds executables from a program object associated with a specified set of shader stages to the program pipeline object given by {{param|pipeline}}. {{param|pipeline}} specifies the program pipeline object to which to bind the executables. {{param|stages}} contains a logical combination of bits indicating the shader stages to use within {{param|program}} with the program pipeline object {{param|pipeline}}. {{param|stages}} must be a logical combination of {{enum|GL_VERTEX_SHADER_BIT}}, {{enum|GL_TESS_CONTROL_SHADER_BIT}}, {{enum|GL_TESS_EVALUATION_SHADER_BIT}}, {{enum|GL_GEOMETRY_SHADER_BIT}}, {{enum|GL_FRAGMENT_SHADER_BIT}} and {{enum|GL_COMPUTE_SHADER_BIT}}. Additionally, the special value {{enum|GL_ALL_SHADER_BITS}} may be specified to indicate that all executables contained in {{param|program}} should be installed in {{param|pipeline}}.


If ''program'' refers to a program object with a valid shader attached for an indicated shader stage, '''glUseProgramStages''' installs the executable code for that stage in the indicated program pipeline object ''pipeline''. If ''program'' is zero, or refers to a program object with no valid shader executable for a given stage, it is as if the pipeline object has no programmable stage configured for the indicated shader stages. If ''stages'' contains bits other than those listed above, and is not equal to {{code|GL_ALL_SHADER_BITS}}, an error is generated.
If {{param|program}} refers to a program object with a valid shader attached for an indicated shader stage, '''glUseProgramStages''' installs the executable code for that stage in the indicated program pipeline object {{param|pipeline}}. If {{param|program}} is zero, or refers to a program object with no valid shader executable for a given stage, it is as if the pipeline object has no programmable stage configured for the indicated shader stages. If {{param|stages}} contains bits other than those listed above, and is not equal to {{enum|GL_ALL_SHADER_BITS}}, an error is generated.
 
== Notes ==
 
The {{enum|GL_COMPUTE_SHADER_BIT}} bit is available only if the GL version is 4.3 or greater.


== Errors ==
== Errors ==


{{code|GL_INVALID_VALUE}} is generated if ''shaders'' contains set bits that are not recognized, and is not the reserved value {{code|GL_ALL_SHADER_BITS}}.
{{enum|GL_INVALID_VALUE}} is generated if {{param|stages}} contains set bits that are not recognized, and is not the reserved value {{enum|GL_ALL_SHADER_BITS}}.


{{code|GL_INVALID_OPERATION}} is generated if ''program'' refers to a program object that was not linked with its {{code|GL_PROGRAM_SEPARABLE}} status set.
{{enum|GL_INVALID_OPERATION}} is generated if {{param|program}} refers to a program object that was not linked with its {{enum|GL_PROGRAM_SEPARABLE}} status set.


{{code|GL_INVALID_OPERATION}} is generated if ''program'' refers to a program object that has not been successfully linked.
{{enum|GL_INVALID_OPERATION}} is generated if {{param|program}} refers to a program object that has not been successfully linked.


{{code|GL_INVALID_OPERATION}} is generated if ''pipeline'' is not a name previously returned from a call to [[GLAPI/glGenProgramPipelines|glGenProgramPipelines]] or if such a name has been deleted by a call to [[GLAPI/glDeleteProgramPipelines|glDeleteProgramPipelines]].
{{enum|GL_INVALID_OPERATION}} is generated if {{param|pipeline}} is not a name previously returned from a call to {{apifunc|glGenProgramPipelines}} or if such a name has been deleted by a call to {{apifunc|glDeleteProgramPipelines}}.


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


[[GLAPI/glGenProgramPipelines|glGenProgramPipelines]], [[GLAPI/glDeleteProgramPipelines|glDeleteProgramPipelines]], [[GLAPI/glIsProgramPipeline|glIsProgramPipeline]]
{{apifunc|glGenProgramPipelines}}, {{apifunc|glDeleteProgramPipelines}}, {{apifunc|glIsProgramPipeline}}, {{apifunc|glLinkProgram}}, {{apifunc|glCreateShaderProgram}}


== Copyright ==
== Copyright ==
Line 42: Line 46:
Copyright © 2010 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. [http://opencontent.org/openpub/ http://opencontent.org/openpub/].
Copyright © 2010 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. [http://opencontent.org/openpub/ http://opencontent.org/openpub/].


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

Latest revision as of 10:05, 15 August 2013

glUseProgramStages
Core in version 4.6
Core since version 4.1
Core ARB extension ARB_separate_shader_objects

glUseProgramStages: bind stages of a program object to a program pipeline

Function Definition

 void glUseProgramStages(GLuint pipeline​, GLbitfield stages​, GLuint program​);
pipeline
Specifies the program pipeline object to which to bind stages from program​.
stages
Specifies a set of program stages to bind to the program pipeline object.
program
Specifies the program object containing the shader executables to use in pipeline​.

Description

glUseProgramStages binds executables from a program object associated with a specified set of shader stages to the program pipeline object given by pipeline​. pipeline​ specifies the program pipeline object to which to bind the executables. stages​ contains a logical combination of bits indicating the shader stages to use within program​ with the program pipeline object pipeline​. stages​ must be a logical combination of GL_VERTEX_SHADER_BIT, GL_TESS_CONTROL_SHADER_BIT, GL_TESS_EVALUATION_SHADER_BIT, GL_GEOMETRY_SHADER_BIT, GL_FRAGMENT_SHADER_BIT and GL_COMPUTE_SHADER_BIT. Additionally, the special value GL_ALL_SHADER_BITS may be specified to indicate that all executables contained in program​ should be installed in pipeline​.

If program​ refers to a program object with a valid shader attached for an indicated shader stage, glUseProgramStages installs the executable code for that stage in the indicated program pipeline object pipeline​. If program​ is zero, or refers to a program object with no valid shader executable for a given stage, it is as if the pipeline object has no programmable stage configured for the indicated shader stages. If stages​ contains bits other than those listed above, and is not equal to GL_ALL_SHADER_BITS, an error is generated.

Notes

The GL_COMPUTE_SHADER_BIT bit is available only if the GL version is 4.3 or greater.

Errors

GL_INVALID_VALUE is generated if stages​ contains set bits that are not recognized, and is not the reserved value GL_ALL_SHADER_BITS.

GL_INVALID_OPERATION is generated if program​ refers to a program object that was not linked with its GL_PROGRAM_SEPARABLE status set.

GL_INVALID_OPERATION is generated if program​ refers to a program object that has not been successfully linked.

GL_INVALID_OPERATION is generated if pipeline​ is not a name previously returned from a call to glGenProgramPipelines or if such a name has been deleted by a call to glDeleteProgramPipelines.

See Also

glGenProgramPipelines, glDeleteProgramPipelines, glIsProgramPipeline, glLinkProgram, glCreateShaderProgram

Copyright

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