'\" t .\" Title: glCreateShaderProgram .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 05/30/2012 .\" Manual: [FIXME: manual] .\" Source: [FIXME: source] .\" Language: English .\" .TH "GLCREATESHADERPROGRA" "3G" "05/30/2012" "[FIXME: source]" "[FIXME: manual]" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" glCreateShaderProgramv \- create a stand\-alone program from an array of null\-terminated source code strings .SH "C SPECIFICATION" .HP \w'GLuint\ glCreateShaderProgramv('u .BI "GLuint glCreateShaderProgramv(GLenum\ " "type" ", GLsizei\ " "count" ", const\ char\ **" "strings" ");" .SH "PARAMETERS" .PP \fItype\fR .RS 4 Specifies the type of shader to create\&. .RE .PP \fIcount\fR .RS 4 Specifies the number of source code strings in the array \fIstrings\fR\&. .RE .PP \fIstrings\fR .RS 4 Specifies the address of an array of pointers to source code strings from which to create the program object\&. .RE .SH "DESCRIPTION" .PP \fBglCreateShaderProgram\fR creates a program object containing compiled and linked shaders for a single stage specified by \fItype\fR\&. \fIstrings\fR refers to an array of \fIcount\fR strings from which to create the shader executables\&. .PP \fBglCreateShaderProgram\fR is equivalent (assuming no errors are generated) to: .sp .if n \{\ .RS 4 .\} .nf 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; } .fi .if n \{\ .RE .\} .PP The program object created by \fBglCreateShaderProgram\fR has its \fBGL_PROGRAM_SEPARABLE\fR status set to \fBGL_TRUE\fR\&. .SH "ERRORS" .PP \fBGL_INVALID_OPERATION\fR is generated if \fIpipeline\fR is not a name previously returned from a call to \fBglGenProgramPipelines\fR() or if such a name has been deleted by a call to \fBglDeleteProgramPipelines\fR()\&. .PP \fBGL_INVALID_OPERATION\fR is generated if \fIprogram\fR refers to a program object that has not been successfully linked\&. .SH "SEE ALSO" .PP \fBglCreateShader\fR(), \fBglCreateProgram\fR(), \fBglCompileShader\fR(), \fBglLinkProgram\fR() .SH "COPYRIGHT" .PP Copyright \(co 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\&. \m[blue]\fBhttp://opencontent\&.org/openpub/\fR\m[]\&.