GLAPI/glCreateShaderProgram: Difference between revisions
m Renaming category: 'GL 4 API Shader Program Creation' to 'Core API Ref Shader Program Creation'. |
m Bot: Adding better formatting. |
||
Line 9: | Line 9: | ||
== Function Definition == | == Function Definition == | ||
GLuint '''glCreateShaderProgramv'''(GLenum | GLuint '''glCreateShaderProgramv'''(GLenum {{param|type}}, GLsizei {{param|count}}, const char **{{param|strings}}); | ||
; type | ; type | ||
: Specifies the type of shader to create. | : Specifies the type of shader to create. | ||
; count | ; count | ||
: Specifies the number of source code strings in the array | : Specifies the number of source code strings in the array {{param|strings}}. | ||
; strings | ; strings | ||
: Specifies the address of an array of pointers to source code strings from which to create the program object. | : Specifies the address of an array of pointers to source code strings from which to create the program object. | ||
Line 20: | Line 20: | ||
== Description == | == Description == | ||
'''glCreateShaderProgram''' creates a program object containing compiled and linked shaders for a single stage specified by | '''glCreateShaderProgram''' creates a program object containing compiled and linked shaders for a single stage specified by {{param|type}}. {{param|strings}} refers to an array of {{param|count}} strings from which to create the shader executables. | ||
'''glCreateShaderProgram''' is equivalent (assuming no errors are generated) to: | '''glCreateShaderProgram''' is equivalent (assuming no errors are generated) to: | ||
Line 51: | Line 51: | ||
== Errors == | == Errors == | ||
{{code|GL_INVALID_OPERATION}} is generated if | {{code|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}}. | ||
{{code|GL_INVALID_OPERATION}} is generated if | {{code|GL_INVALID_OPERATION}} is generated if {{param|program}} refers to a program object that has not been successfully linked. | ||
== See Also == | == See Also == | ||
{{apifunc|glCreateShader}}, {{apifunc|glCreateProgram}}, {{apifunc|glCompileShader}}, {{apifunc|glLinkProgram}} | |||
== Copyright == | == Copyright == |
Revision as of 01:15, 29 April 2012
Core in version | 4.6 | |
---|---|---|
Core since version | 4.1 | |
Core ARB extension | ARB_separate_shader_objects |
glCreateShaderProgramv: create a stand-alone program from an array of null-terminated source code strings
Function Definition
GLuint glCreateShaderProgramv(GLenum type, GLsizei count, const char **strings);
- type
- Specifies the type of shader to create.
- count
- Specifies the number of source code strings in the array strings.
- strings
- Specifies the address of an array of pointers to source code strings from which to create the program object.
Description
glCreateShaderProgram creates a program object containing compiled and linked shaders for a single stage specified by type. strings refers to an array of count strings from which to create the shader executables.
glCreateShaderProgram is equivalent (assuming no errors are generated) to:
const GLuint shader = glCreateShader(type);
if (shader) {
glShaderSource(shader, count, strings, NULL);
glCompileShader(shader);
const GLuint program = glCreateProgram();
if (program) {
GLint compiled = GL_FALSE;
glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
glProgramParameteri(program, GL_PROGRAM_SEPARABLE, GL_TRUE);
if (compiled) {
glAttachShader(program, shader);
glLinkProgram(program);
glDetachShader(program, shader);
}
/* append-shader-info-log-to-program-info-log */
}
glDeleteShader(shader);
return program;
} else {
return 0;
}
The program object created by glCreateShaderProgram has its GL_PROGRAM_SEPARABLE status set to GL_TRUE.
Errors
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.
GL_INVALID_OPERATION is generated if program refers to a program object that has not been successfully linked.
See Also
glCreateShader, glCreateProgram, glCompileShader, glLinkProgram
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/.