logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

glGetUniformLocation - Returns the location of a uniform variable

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_LENGTHglGetUniform() with arguments program and the name of a uniform variable

       glIsProgram()

C Specification

GLintglGetUniformLocation(GLuintprogram,constGLchar*name);

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.

Name

       glGetUniformLocation - Returns the location of a uniform variable

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.

See Also

glLinkProgram(), glUniform()

Version Support

       ┌──────────────────────┬───────────────────────────────────────────────────────────────────────┐
       │                      │                OpenGLVersion                                         │
       ├──────────────────────┼─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┤
       │ Function2.02.13.03.13.23.34.04.14.24.34.44.5 │
       │ /                    │     │     │     │     │     │     │     │     │     │     │     │     │
       │ Feature              │     │     │     │     │     │     │     │     │     │     │     │     │
       │ Name                 │     │     │     │     │     │     │     │     │     │     │     │     │
       ├──────────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │ glGetUniformLocation │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       └──────────────────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘

See Also