'\" t .\" Title: glGetActiveUniformBlock .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 01/03/2018 .\" Manual: [FIXME: manual] .\" Source: [FIXME: source] .\" Language: English .\" .TH "GLGETACTIVEUNIFORMBL" "3G" "01/03/2018" "[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" glGetActiveUniformBlock \- query information about an active uniform block .SH "C SPECIFICATION" .HP \w'void\ glGetActiveUniformBlockiv('u .BI "void glGetActiveUniformBlockiv(GLuint\ " "program" ", GLuint\ " "uniformBlockIndex" ", GLenum\ " "pname" ", GLint\ *" "params" ");" .SH "PARAMETERS" .PP \fIprogram\fR .RS 4 Specifies the name of a program containing the uniform block\&. .RE .PP \fIuniformBlockIndex\fR .RS 4 Specifies the index of the uniform block within \fIprogram\fR\&. .RE .PP \fIpname\fR .RS 4 Specifies the name of the parameter to query\&. .RE .PP \fIparams\fR .RS 4 Specifies the address of a variable to receive the result of the query\&. .RE .SH "DESCRIPTION" .PP \fBglGetActiveUniformBlockiv\fR retrieves information about an active uniform block within \fIprogram\fR\&. .PP \fIprogram\fR must be the name of a program object for which the command \fBglLinkProgram\fR() must have been called in the past, although it is not required that \fBglLinkProgram\fR() must have succeeded\&. The link could have failed because the number of active uniforms exceeded the limit\&. .PP \fIuniformBlockIndex\fR is an active uniform block index of \fIprogram\fR, and must be less than the value of \fBGL_ACTIVE_UNIFORM_BLOCKS\fR\&. .PP Upon success, the uniform block parameter(s) specified by \fIpname\fR are returned in \fIparams\fR\&. If an error occurs, nothing will be written to \fIparams\fR\&. .PP If \fIpname\fR is \fBGL_UNIFORM_BLOCK_BINDING\fR, then the index of the uniform buffer binding point last selected by the uniform block specified by \fIuniformBlockIndex\fR for \fIprogram\fR is returned\&. If no uniform block has been previously specified, zero is returned\&. .PP If \fIpname\fR is \fBGL_UNIFORM_BLOCK_DATA_SIZE\fR, then the implementation\-dependent minimum total buffer object size, in basic machine units, required to hold all active uniforms in the uniform block identified by \fIuniformBlockIndex\fR is returned\&. It is neither guaranteed nor expected that a given implementation will arrange uniform values as tightly packed in a buffer object\&. The exception to this is the \fIstd140 uniform block layout\fR, which guarantees specific packing behavior and does not require the application to query for offsets and strides\&. In this case the minimum size may still be queried, even though it is determined in advance based only on the uniform block declaration\&. .PP If \fIpname\fR is \fBGL_UNIFORM_BLOCK_NAME_LENGTH\fR, then the total length (including the nul terminator) of the name of the uniform block identified by \fIuniformBlockIndex\fR is returned\&. .PP If \fIpname\fR is \fBGL_UNIFORM_BLOCK_ACTIVE_UNIFORMS\fR, then the number of active uniforms in the uniform block identified by \fIuniformBlockIndex\fR is returned\&. .PP If \fIpname\fR is \fBGL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES\fR, then a list of the active uniform indices for the uniform block identified by \fIuniformBlockIndex\fR is returned\&. The number of elements that will be written to \fIparams\fR is the value of \fBGL_UNIFORM_BLOCK_ACTIVE_UNIFORMS\fR for \fIuniformBlockIndex\fR\&. .PP If \fIpname\fR is \fBGL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER\fR, \fBGL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER\fR, \fBGL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER\fR, \fBGL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER\fR, \fBGL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER\fR, or \fBGL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER\fR then a boolean value indicating whether the uniform block identified by \fIuniformBlockIndex\fR is referenced by the vertex, tessellation control, tessellation evaluation, geometry, fragment or compute programming stages of program, respectively, is returned\&. .SH "ERRORS" .PP \fBGL_INVALID_VALUE\fR is generated if \fIuniformBlockIndex\fR is greater than or equal to the value of \fBGL_ACTIVE_UNIFORM_BLOCKS\fR or is not the index of an active uniform block in \fIprogram\fR\&. .PP \fBGL_INVALID_ENUM\fR is generated if \fIpname\fR is not one of the accepted tokens\&. .PP \fBGL_INVALID_OPERATION\fR is generated if \fIprogram\fR is not the name of a program object for which \fBglLinkProgram\fR() has been called in the past\&. .SH "NOTES" .PP \fBglGetActiveUniformBlockiv\fR is available only if the GL version is 3\&.1 or greater\&. .PP \fBGL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER\fR is accepted only if the GL version is 4\&.3 or greater\&. .SH "VERSION SUPPORT" .TS allbox tab(:); lB cB s s s s s s s s s s s lB cB cB cB cB cB cB cB cB cB cB cB cB. T{ T}:T{ \fBOpenGL Version\fR T} T{ \fBFunction / Feature Name\fR T}:T{ \fB2\&.0\fR T}:T{ \fB2\&.1\fR T}:T{ \fB3\&.0\fR T}:T{ \fB3\&.1\fR T}:T{ \fB3\&.2\fR T}:T{ \fB3\&.3\fR T}:T{ \fB4\&.0\fR T}:T{ \fB4\&.1\fR T}:T{ \fB4\&.2\fR T}:T{ \fB4\&.3\fR T}:T{ \fB4\&.4\fR T}:T{ \fB4\&.5\fR T} .T& l c c c c c c c c c c c c. T{ \fBglGetActiveUniformBlockiv\fR T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T} .TE .sp 1 .SH "SEE ALSO" .PP \fBglGetActiveUniformBlockName\fR(), \fBglGetUniformBlockIndex\fR(), \fBglLinkProgram\fR() .SH "COPYRIGHT" .PP Copyright \(co 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\&. \m[blue]\fBhttp://opencontent\&.org/openpub/\fR\m[]\&. .SH "COPYRIGHT" .br Copyright \(co 2010-2014 Khronos Group .br