GLGETACTIVEATTRIB(3gl)GLGETACTIVEATTRIB(3gl)NAMEglGetActiveUniformARB - returns information about active uniform vari‐
able
C SPECIFICATION
void glGetActiveUniformARB( GLhandleARB program,
GLuint index,
GLsizei maxLength,
GLsizei *length,
GLint *size,
GLenum *type,
GLcharARB *name )
PARAMETERS
program Specifies the handle of program object to be queried.
index Specifies the index of the uniform to be queried.
maxLength Specifies the maximum number of characters that OpenGL can
write
into
name
length Returns number of characters written into name.
size Returns size of the uniform variable.
type Returns the type of the uniform variable.
name Returns string containing the name of the uniform
vari‐
able.
DESCRIPTIONglGetActiveUniformARB returns information about an active uniform vari‐
able in program. An index of 0 selects the first active uniform and an
index of GL_OBJECT_ACTIVE_UNIFORMS_ARB-1 selects the last active uni‐
form. The value of GL_OBJECT_ACTIVE_UNIFORMS_ARB can be queried with
glGetObjectParametervARB.
The parameter program is a handle to a program object which has been
passed to glLinkProgramARB. It is not necessary for program to have
been linked successfully. The link could have failed because the number
of active uniforms exceeded the limit.
The uniform name is returned into the string name and is null termi‐
nated. The maximum number of characters that can be written into name
is controlled by maxLength. The actual number of characters written
into name (excluding the null terminator) is returned in length. If
length is NULL no value is written into length. The length of the
longest uniform name in program can be queried with glGetObjectParame‐
tervARB with the parameter GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB.
The returned uniform name can also be the name of a built-in uniform
state variable.
The type of the uniform is returned in type. The size of the uniform is
returned in size. The value in size is in the units of the type
returned in type. The type returned can be any of GL_FLOAT,
GL_FLOAT_VEC2_ARB, GL_FLOAT_VEC3_ARB, GL_FLOAT_VEC4_ARB, GL_INT,
GL_INT_VEC2_ARB, GL_INT_VEC3_ARB, GL_INT_VEC4_ARB, GL_BOOL_ARB,
GL_BOOL_VEC2_ARB, GL_BOOL_VEC3_ARB, GL_BOOL_VEC4_ARB,
GL_FLOAT_MAT2_ARB, GL_FLOAT_MAT3_ARB, or GL_FLOAT_MAT4_ARB.
glGetActiveUniformARB returns as much information about active uniforms
as possible. If no information is available, length will be set to
zero and name will be an empty string. This situation can happen when
the link was unsuccessful.
ERRORS
GL_INVALID_VALUE is generated if program is not a valid object handle.
GL_INVALID_VALUE is generated if maxLength is less than 0.
GL_INVALID_OPERATION is generated if program is not of type GL_PRO‐
GRAM_OBJECT_ARB.
GL_INVALID_VALUE is generated if index is greater than or equal to
GL_OBJECT_ACTIVE_UNIFORMS_ARB.
GL_INVALID_OPERATION is generated glGetActiveUniformARB is executed
between glBegin and glEnd.
ASSOCIATED GETS
glGetObjectParameterARB with argument GL_OBJECT_ACTIVE_UNIFORMS_ARB or
GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB
SEE ALSO
glGetUniformARB, glGetUniformLocationARB, glLinkProgramARB, glUnifor‐
mARB, glUseProgramObjectARB
11 Mar 04 GLGETACTIVEATTRIB(3gl)