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

NAME

       glGetUniformfv, glGetUniformiv - Returns the value of a uniform variable

C SPECIFICATION

       void glGetUniformfv(GLuint program, GLint location, GLfloat *params);

       void glGetUniformiv(GLuint program, GLint location, GLint *params);

       void glGetUniformuiv(GLuint program, GLint location, GLuint *params);

       void glGetUniformdv(GLuint program, GLint location, GLdouble *params);

       void glGetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);

       void glGetnUniformiv(GLuint program, GLint location, GLsizei bufSize, GLint *params);

       void glGetnUniformuiv(GLuint program, GLint location, GLsizei bufSize, GLuint *params);

       void glGetnUniformdv(GLuint program, GLint location, GLsizei bufSize, GLdouble *params);

PARAMETERS

       program
           Specifies the program object to be queried.

       location
           Specifies the location of the uniform variable to be queried.

       bufSize
           Specifies the size of the buffer params.

       params
           Returns the value of the specified uniform variable.

DESCRIPTION

       glGetUniform and glGetnUniform return in params the value(s) of the specified uniform
       variable. The type of the uniform variable specified by location determines the number of
       values returned. If the uniform variable is defined in the shader as a boolean, int, or
       float, a single value will be returned. If it is defined as a vec2, ivec2, or bvec2, two
       values will be returned. If it is defined as a vec3, ivec3, or bvec3, three values will be
       returned, and so on. To query values stored in uniform variables declared as arrays, call
       glGetUniform for each element of the array. To query values stored in uniform variables
       declared as structures, call glGetUniform for each field in the structure. The values for
       uniform variables declared as a matrix will be returned in column major order.

       The locations assigned to uniform variables are not known until the program object is
       linked. 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
       glGetUniform or glGetnUniform 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. The uniform variable values can
       only be queried after a link if the link was successful.

       The only difference between glGetUniform and glGetnUniform is that glGetnUniform will
       generate an error if size of the params buffer,as described by bufSize, is not large
       enough to hold the result data.

NOTES

       If an error is generated, no change is made to the contents of params.

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.

       GL_INVALID_OPERATION is generated if location does not correspond to a valid uniform
       variable location for the specified program object.

       GL_INVALID_OPERATION is generated by glGetnUniform if the buffer size required to store
       the requested data is greater than bufSize.

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

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

       glIsProgram()

VERSION SUPPORT

       ┌─────────────────┬───────────────────────────────────────────────────────────────────────┐
       │                 │                OpenGL Version                                         │
       ├─────────────────┼─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┤
       │Function2.02.13.03.13.23.34.04.14.24.34.44.5 │
       │/                │     │     │     │     │     │     │     │     │     │     │     │     │
       │Feature          │     │     │     │     │     │     │     │     │     │     │     │     │
       │Name             │     │     │     │     │     │     │     │     │     │     │     │     │
       ├─────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetUniformdv   │  -  │  -  │  -  │  -  │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├─────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetUniformfv   │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├─────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetUniformiv   │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├─────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetUniformuiv  │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├─────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetnUniformdv  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  ✔  │
       ├─────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetnUniformfv  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  ✔  │
       ├─────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetnUniformiv  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  ✔  │
       ├─────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetnUniformuiv │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  ✔  │
       └─────────────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘

SEE ALSO

       glCreateProgram(), glLinkProgram(), glUniform()

COPYRIGHT

       Copyright © 2003-2005 3Dlabs Inc. Ltd. Copyright © 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.  http://opencontent.org/openpub/.

COPYRIGHT

       Copyright © 2003-2005 3Dlabs Inc. Ltd.
       Copyright © 2010-2014 Khronos Group

[FIXME: source]                             01/03/2018                           GLGETUNIFORM(3G)