Provided by: opengl-4-man-doc_1.0~svn22917-1_all bug

NAME

       glGetUniformLocation - Returns the location of a uniform variable

C SPECIFICATION

       GLint glGetUniformLocation(GLuint program, const GLchar *name);

PARAMETERS

       program
           Specifies the program object to be queried.

       name
           Points to a null terminated string containing the name of the uniform variable whose
           location is to be queried.

DESCRIPTION

       glGetUniformLocation returns an integer that represents the location of a specific uniform
       variable within a program object.  name must be a null terminated string that contains no
       white space.  name must be an active uniform variable name in program that is not a
       structure, an array of structures, or a subcomponent of a vector or a matrix. This
       function returns -1 if name does not correspond to an active uniform variable in program,
       if name starts with the reserved prefix "gl_", or if name is associated with an atomic
       counter or a named uniform block.

       Uniform variables that are structures or arrays of structures may be queried by calling
       glGetUniformLocation for each field within the structure. The array element operator "[]"
       and the structure field operator "." may be used in name in order to select elements
       within an array or fields within a structure. The result of using these operators is not
       allowed to be another structure, an array of structures, or a subcomponent of a vector or
       a matrix. Except if the last part of name indicates a uniform variable array, the location
       of the first element of an array can be retrieved by using the name of the array, or by
       using the name appended by "[0]".

       The actual locations assigned to uniform variables are not known until the program object
       is linked successfully. After linking has occurred, the command glGetUniformLocation can
       be used to obtain the location of a uniform variable. This location value can then be
       passed to glUniform() to set the value of the uniform variable or to glGetUniform() in
       order to query the current value of the uniform variable. After a program object has been
       linked successfully, the index values for uniform variables remain fixed until the next
       link command occurs. Uniform variable locations and values can only be queried after a
       link if the link was successful.

ERRORS

       GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.

       GL_INVALID_OPERATION is generated if program is not a program object.

       GL_INVALID_OPERATION is generated if program has not been successfully linked.

ASSOCIATED GETS

       glGetActiveUniform() with arguments program and the index of an active uniform variable

       glGetProgram() with arguments program and GL_ACTIVE_UNIFORMS or
       GL_ACTIVE_UNIFORM_MAX_LENGTH

       glGetUniform() with arguments program and the name of a uniform variable

       glIsProgram()

SEE ALSO

       glLinkProgram(), glUniform()

COPYRIGHT

       Copyright © 2003-2005 3Dlabs Inc. Ltd.  © 2011 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/.

AUTHORS

       opengl.org