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__() or Program.__iter__()

Methods#

Uniform.read() bytes#

Read the value of the uniform.

Uniform.write(data: Any) None#

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#