picogl.backend.modern.core.shader.program

Classes

ShaderProgram

OpenGL Shader program manager for vertex and fragment shaders.

Module Contents

class picogl.backend.modern.core.shader.program.ShaderProgram(shader_name: str = None, vertex_source_file: str = None, fragment_source_file: str = None, glsl_dir: str | pathlib.Path | None = None)[source]

OpenGL Shader program manager for vertex and fragment shaders.

shader_name = None[source]
vertex_source_file = None[source]
fragment_source_file = None[source]
base_dir = None[source]
vertex_shader = None[source]
fragment_shader = None[source]
program = None[source]
uniforms[source]
__str__()[source]
__enter__()[source]
__exit__(exc_type, exc_val, exc_tb)[source]
program_id()[source]
init_shader_from_glsl_files(vertex_source_file: str, fragment_source_file: str, glsl_dir: str | pathlib.Path | None = None) None[source]

init_shader_from_glsl_files

Parameters:
  • glsl_dir – directory containing vertex shaders

  • vertex_source_file – list of paths to vertex shaders

  • fragment_source_file – list of paths to fragment shaders

Returns:

None

init_shader_from_glsl(vertex_source: str, fragment_source: str) None[source]

init_shader_from_glsl

Parameters:
  • vertex_source – list of paths to vertex shaders

  • fragment_source – list of paths to fragment shaders

Returns:

None

init_shader(vertex_source: str, fragment_source: str)[source]

init_shader

Parameters:
  • vertex_source – list of paths to vertex shaders

  • fragment_source – list of paths to fragment shaders

Returns:

None

Create, compile, and link shaders into a program.

uniform(name: str, value)[source]

uniform

Parameters:
  • name – str - uniform name

  • value – value to set (float, int, vec2, vec3, vec4, mat4, or np.ndarray)

Returns:

self - for chaining

Set uniform value (auto-detect type)

create_shader_program()[source]

create_shader_program

link_shader_program

get_uniform_location(uniform_name)[source]

get_uniform_location

begin()[source]

begin

end()[source]

end

bind()[source]

begin

unbind()[source]
release()[source]
delete()[source]