Uniform
- class moderngl.Uniform
A uniform is a global GLSL variable declared with the “uniform” storage qualifier. These act as parameters that the user of a shader program can pass to that program.
In ModernGL, Uniforms can be accessed using
Program.__getitem__()
orProgram.__iter__()
Methods
- Uniform.read() bytes
Read the value of the uniform.
- Uniform.write(data)
Write the value of the uniform.
Attributes
- Uniform.location
The location of the uniform. The location holds the value returned by the glGetUniformLocation. To set the value of the uniform use the
value
instead.- Type
int
- Uniform.dimension
The dimension of the uniform.
GLSL type
dimension
sampler2D
1
sampler2DCube
1
sampler2DShadow
1
bool
1
bvec2
2
bvec3
3
bvec4
4
int
1
ivec2
2
ivec3
3
ivec4
4
uint
1
uvec2
2
uvec3
3
uvec4
4
float
1
vec2
2
vec3
3
vec4
4
double
1
dvec2
2
dvec3
3
dvec4
4
mat2
4
mat2x3
6
mat2x4
8
mat3x2
6
mat3
9
mat3x4
12
mat4x2
8
mat4x3
12
mat4
16
dmat2
4
dmat2x3
6
dmat2x4
8
dmat3x2
6
dmat3
9
dmat3x4
12
dmat4x2
8
dmat4x3
12
dmat4
16
- Type
int
- Uniform.array_length
The length of the array of the uniform. The array_length is 1 for non array uniforms.
- Type
int
- Uniform.name
The name of the uniform. The name does not contain leading [0]. The name may contain [ ] when the uniform is part of a struct.
- Type
str
- Uniform.value
The value of the uniform. Reading the value of the uniform may force the GPU to sync.
The value must be a tuple for non array uniforms. The value must be a list of tuples for array uniforms.
- Uniform.extra
Any - Attribute for storing user defined objects
- Uniform.mglo
Internal representation for debug purposes only.