moderngl.Program
Context.program(vertex_shader, fragment_shader=None, geometry_shader=None, tess_control_shader=None, tess_evaluation_shader=None, varyings=()) -> Program
Program.get(key, default) -> Union[Uniform, UniformBlock, Subroutine, Attribute, Varying]
Program.geometry_input
Program.geometry_output
Program.geometry_vertices
Program.subroutines
Program.glo
A simple program designed for rendering
my_render_program = ctx.program(
vertex_shader='''
#version 330
in vec2 vert;
void main() {
gl_Position = vec4(vert, 0.0, 1.0);
}
''',
fragment_shader='''
#version 330
out vec4 color;
void main() {
color = vec4(0.3, 0.5, 1.0, 1.0);
}
''',
)
A simple program designed for transforming
my_transform_program = ctx.program(
vertex_shader='''
#version 330
in vec4 vert;
out float vert_length;
void main() {
vert_length = length(vert);
}
''',
varyings=['vert_length']
)
uniform.rst uniform_block.rst subroutine.rst attribute.rst varying.rst