X-Git-Url: http://git.hcoop.net/clinton/guile-figl.git/blobdiff_plain/b002944dd992dc5a273e0067504beb48e1ae3d1c..a6a00658f26c164551287799b194cc2f07eb78be:/upstream-doc/man3/glUniform.xml diff --git a/upstream-doc/man3/glUniform.xml b/upstream-doc/man3/glUniform.xml new file mode 100644 index 0000000..9dfc334 --- /dev/null +++ b/upstream-doc/man3/glUniform.xml @@ -0,0 +1,560 @@ + + + + + glUniform + 3G + + + glUniform + glUniform1f + glUniform2f + glUniform3f + glUniform4f + glUniform1i + glUniform2i + glUniform3i + glUniform4i + glUniform1ui + glUniform2ui + glUniform3ui + glUniform4ui + glUniform1fv + glUniform2fv + glUniform3fv + glUniform4fv + glUniform1iv + glUniform2iv + glUniform3iv + glUniform4iv + glUniform1uiv + glUniform2uiv + glUniform3uiv + glUniform4uiv + glUniformMatrix2fv + glUniformMatrix3fv + glUniformMatrix4fv + glUniformMatrix2x3fv + glUniformMatrix3x2fv + glUniformMatrix2x4fv + glUniformMatrix4x2fv + glUniformMatrix3x4fv + glUniformMatrix4x3fv + Specify the value of a uniform variable for the current program object + + C Specification + + + void glUniform1f + GLint location + GLfloat v0 + + + void glUniform2f + GLint location + GLfloat v0 + GLfloat v1 + + + void glUniform3f + GLint location + GLfloat v0 + GLfloat v1 + GLfloat v2 + + + void glUniform4f + GLint location + GLfloat v0 + GLfloat v1 + GLfloat v2 + GLfloat v3 + + + void glUniform1i + GLint location + GLint v0 + + + void glUniform2i + GLint location + GLint v0 + GLint v1 + + + void glUniform3i + GLint location + GLint v0 + GLint v1 + GLint v2 + + + void glUniform4i + GLint location + GLint v0 + GLint v1 + GLint v2 + GLint v3 + + + void glUniform1ui + GLint location + GLuint v0 + + + void glUniform2ui + GLint location + GLuint v0 + GLuint v1 + + + void glUniform3ui + GLint location + GLuint v0 + GLuint v1 + GLuint v2 + + + void glUniform4ui + GLint location + GLuint v0 + GLuint v1 + GLuint v2 + GLuint v3 + + + + Parameters + + + location + + Specifies the location of the uniform variable + to be modified. + + + + + v0, + v1, + v2, + v3 + + + Specifies the new values to be used for the + specified uniform variable. + + + + + C Specification + + + void glUniform1fv + GLint location + GLsizei count + const GLfloat *value + + + void glUniform2fv + GLint location + GLsizei count + const GLfloat *value + + + void glUniform3fv + GLint location + GLsizei count + const GLfloat *value + + + void glUniform4fv + GLint location + GLsizei count + const GLfloat *value + + + void glUniform1iv + GLint location + GLsizei count + const GLint *value + + + void glUniform2iv + GLint location + GLsizei count + const GLint *value + + + void glUniform3iv + GLint location + GLsizei count + const GLint *value + + + void glUniform4iv + GLint location + GLsizei count + const GLint *value + + + void glUniform1uiv + GLint location + GLsizei count + const GLuint *value + + + void glUniform2uiv + GLint location + GLsizei count + const GLuint *value + + + void glUniform3uiv + GLint location + GLsizei count + const GLuint *value + + + void glUniform4uiv + GLint location + GLsizei count + const GLuint *value + + + + Parameters + + + location + + Specifies the location of the uniform value to + be modified. + + + + count + + Specifies the number of elements that are to + be modified. This should be 1 if the targeted + uniform variable is not an array, and 1 or more if it is + an array. + + + + value + + Specifies a pointer to an array of + count values that will be + used to update the specified uniform + variable. + + + + + C Specification + + + void glUniformMatrix2fv + GLint location + GLsizei count + GLboolean transpose + const GLfloat *value + + + void glUniformMatrix3fv + GLint location + GLsizei count + GLboolean transpose + const GLfloat *value + + + void glUniformMatrix4fv + GLint location + GLsizei count + GLboolean transpose + const GLfloat *value + + + void glUniformMatrix2x3fv + GLint location + GLsizei count + GLboolean transpose + const GLfloat *value + + + void glUniformMatrix3x2fv + GLint location + GLsizei count + GLboolean transpose + const GLfloat *value + + + void glUniformMatrix2x4fv + GLint location + GLsizei count + GLboolean transpose + const GLfloat *value + + + void glUniformMatrix4x2fv + GLint location + GLsizei count + GLboolean transpose + const GLfloat *value + + + void glUniformMatrix3x4fv + GLint location + GLsizei count + GLboolean transpose + const GLfloat *value + + + void glUniformMatrix4x3fv + GLint location + GLsizei count + GLboolean transpose + const GLfloat *value + + + + Parameters + + + location + + Specifies the location of the uniform value to + be modified. + + + + count + + Specifies the number of matrices that are to + be modified. This should be 1 if the targeted + uniform variable is not an array of matrices, and 1 or more if it is + an array of matrices. + + + + transpose + + Specifies whether to transpose the matrix as + the values are loaded into the uniform + variable. + + + + value + + Specifies a pointer to an array of + count values that will be + used to update the specified uniform + variable. + + + + + Description + glUniform modifies the value of a + uniform variable or a uniform variable array. The location of + the uniform variable to be modified is specified by + location, which should be a value + returned by + glGetUniformLocation. + glUniform operates on the program object + that was made part of current state by calling + glUseProgram. + + The commands glUniform{1|2|3|4}{f|i|ui} + are used to change the value of the uniform variable specified + by location using the values passed as + arguments. The number specified in the command should match the + number of components in the data type of the specified uniform + variable (e.g., 1 for float, int, unsigned int, bool; + 2 for vec2, ivec2, uvec2, bvec2, etc.). The suffix + f indicates that floating-point values are + being passed; the suffix i indicates that + integer values are being passed; the suffix ui indicates that + unsigned integer values are being passed, and this type should also match + the data type of the specified uniform variable. The + i variants of this function should be used + to provide values for uniform variables defined as int, ivec2, + ivec3, ivec4, or arrays of these. The + ui variants of this function should be used + to provide values for uniform variables defined as unsigned int, uvec2, + uvec3, uvec4, or arrays of these. The f + variants should be used to provide values for uniform variables + of type float, vec2, vec3, vec4, or arrays of these. Either the + i, ui or f variants + may be used to provide values for uniform variables of type + bool, bvec2, bvec3, bvec4, or arrays of these. The uniform + variable will be set to false if the input value is 0 or 0.0f, + and it will be set to true otherwise. + + All active uniform variables defined in a program object + are initialized to 0 when the program object is linked + successfully. They retain the values assigned to them by a call + to glUniform until the next successful + link operation occurs on the program object, when they are once + again initialized to 0. + + The commands glUniform{1|2|3|4}{f|i|ui}v + can be used to modify a single uniform variable or a uniform + variable array. These commands pass a count and a pointer to the + values to be loaded into a uniform variable or a uniform + variable array. A count of 1 should be used if modifying the + value of a single uniform variable, and a count of 1 or greater + can be used to modify an entire array or part of an array. When + loading n elements starting at an arbitrary + position m in a uniform variable array, + elements m + n - 1 in + the array will be replaced with the new values. If + m + n - 1 is + larger than the size of the uniform variable array, values for + all array elements beyond the end of the array will be ignored. + The number specified in the name of the command indicates the + number of components for each element in + value, and it should match the number of + components in the data type of the specified uniform variable + (e.g., 1 for float, int, bool; + 2 for vec2, ivec2, bvec2, etc.). The data + type specified in the name of the command must match the data + type for the specified uniform variable as described previously + for glUniform{1|2|3|4}{f|i|ui}. + + For uniform variable arrays, each element of the array is + considered to be of the type indicated in the name of the + command (e.g., glUniform3f or + glUniform3fv can be used to load a uniform + variable array of type vec3). The number of elements of the + uniform variable array to be modified is specified by + count + + The commands + glUniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv + are used to modify a matrix or an array of matrices. The numbers in the + command name are interpreted as the dimensionality of the matrix. + The number 2 indicates a 2 × 2 matrix + (i.e., 4 values), the number 3 indicates a + 3 × 3 matrix (i.e., 9 values), and the number + 4 indicates a 4 × 4 matrix (i.e., 16 + values). Non-square matrix dimensionality is explicit, with the first + number representing the number of columns and the second number + representing the number of rows. For example, + 2x4 indicates a 2 × 4 matrix with 2 columns + and 4 rows (i.e., 8 values). + If transpose is + GL_FALSE, each matrix is assumed to be + supplied in column major order. If + transpose is + GL_TRUE, each matrix is assumed to be + supplied in row major order. The count + argument indicates the number of matrices to be passed. A count + of 1 should be used if modifying the value of a single matrix, + and a count greater than 1 can be used to modify an array of + matrices. + + Notes + glUniform1i and + glUniform1iv are the only two functions + that may be used to load uniform variables defined as sampler + types. Loading samplers with any other function will result in a + GL_INVALID_OPERATION error. + + If count is greater than 1 and the + indicated uniform variable is not an array, a + GL_INVALID_OPERATION error is generated and the + specified uniform variable will remain unchanged. + + Other than the preceding exceptions, if the type and size + of the uniform variable as defined in the shader do not match + the type and size specified in the name of the command used to + load its value, a GL_INVALID_OPERATION error will + be generated and the specified uniform variable will remain + unchanged. + + If location is a value other than + -1 and it does not represent a valid uniform variable location + in the current program object, an error will be generated, and + no changes will be made to the uniform variable storage of the + current program object. If location is + equal to -1, the data passed in will be silently ignored and the + specified uniform variable will not be changed. + + Errors + GL_INVALID_OPERATION is generated if there + is no current program object. + + GL_INVALID_OPERATION is generated if the + size of the uniform variable declared in the shader does not + match the size indicated by the glUniform + command. + + GL_INVALID_OPERATION is generated if one of + the signed or unsigned integer variants of this function is used to load a uniform + variable of type float, vec2, vec3, vec4, or an array of these, + or if one of the floating-point variants of this function is + used to load a uniform variable of type int, ivec2, ivec3, + ivec4, unsigned int, uvec2, uvec3, + uvec4, or an array of these. + + GL_INVALID_OPERATION is generated if one of + the signed integer variants of this function is used to load a uniform + variable of type unsigned int, uvec2, uvec3, + uvec4, or an array of these. + + GL_INVALID_OPERATION is generated if one of + the unsigned integer variants of this function is used to load a uniform + variable of type int, ivec2, ivec3, + ivec4, or an array of these. + + GL_INVALID_OPERATION is generated if + location is an invalid uniform location + for the current program object and + location is not equal to -1. + + GL_INVALID_VALUE is generated if + count is less than 0. + + GL_INVALID_OPERATION is generated if + count is greater than 1 and the indicated + uniform variable is not an array variable. + + GL_INVALID_OPERATION is generated if a + sampler is loaded using a command other than + glUniform1i and + glUniform1iv. + + + Associated Gets + glGet + with the argument GL_CURRENT_PROGRAM + + glGetActiveUniform + with the handle of a program object and the index of an active uniform variable + + glGetUniform + with the handle of a program object and the location of a + uniform variable + + glGetUniformLocation + with the handle of a program object and the name of a uniform + variable + + See Also + glLinkProgram, + glUseProgram + + Copyright + + Copyright 2003-2005 3Dlabs Inc. Ltd. + Copyright 2010 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/. + + +