picogl.shaders.manager
Example Usage:
>>>shader_manager = ShaderManager() … …# Load all src …for shader_type_value in ShaderType: … shader_manager.load_shader_source_string(shader_type_value) … …# Use a shader_manager.current_shader_program …if shader_manager.use_shader_type(ShaderType.ATOMS): … shader_manager.current_shader_program = shader_manager.get(ShaderType.ATOMS) … set_common_uniforms( … shader_manager.current_shader_program, … mvp_matrix=my_mvp_matrix, … point_size=15.0, … highlight=True, … highlight_color=(1.0, 1.0, 0.0) … )
File naming convention:
Ensure GLSL files follow the naming pattern:
atoms_vert.glsl atoms_frag.glsl bonds_vert.glsl bonds_frag.glsl
Classes
Module Contents
- class picogl.shaders.manager.ShaderManager[source]
- shaders: Dict[picogl.shaders.type.ShaderType, picogl.backend.modern.core.shader.program.ShaderProgram][source]
- fallback_shader: picogl.backend.modern.core.shader.program.ShaderProgram | None = None[source]
- default_shader_type: picogl.shaders.type.ShaderType[source]
- current_shader_type: picogl.shaders.type.ShaderType[source]
- current_shader: picogl.backend.modern.core.shader.program.ShaderProgram | None = None[source]
- use_shader_program(shader_program: picogl.backend.modern.core.shader.program.ShaderProgram) None[source]
use_shader_program
- Parameters:
shader_program – PicoGLShader
- Returns:
None
Bind the given shader shader_program and update current_shader/shader_program ID
- get_shader_type(shader_type: picogl.shaders.type.ShaderType) picogl.backend.modern.core.shader.program.ShaderProgram | picogl.backend.modern.core.shader.program.ShaderProgram | None[source]
Return the shader shader_program for the given ShaderType, loading if necessary.
- use_shader_type(shader_type: picogl.shaders.type.ShaderType, mvp_matrix: numpy.ndarray | pyglm.glm.mat4 = None, zoom_scale: int = None) None[source]
use_shader_type
- Parameters:
zoom_scale – int
shader_type – ShaderType
mvp_matrix – np.ndarray | glm.mat4 = None
- Returns:
None
Load (if needed) and bind the shader of the given type
- update_mvp_uniform(mvp_matrix: numpy.ndarray | pyglm.glm.mat4) None[source]
update_mvp_uniform
- Parameters:
mvp_matrix – np.ndarray | glm.mat4:
- Returns:
None
- set_uniform_value(uniform_name: str, uniform_value: float | int | pyglm.glm.vec2 | pyglm.glm.vec3 | pyglm.glm.vec4 | pyglm.glm.mat4 | numpy.ndarray) None[source]
set_uniform_value
- Parameters:
uniform_name – str
uniform_value – Union[float, int, glm.vec2, glm.vec3, glm.vec4, glm.mat4, np.ndarray]
- Returns:
None
- use_default_shader(mvp_matrix: numpy.ndarray | pyglm.glm.mat4 = None) None[source]
use_default_shader
- Parameters:
mvp_matrix – np.ndarray | glm.mat4
- Returns:
Bind the default shader type.
- load_shader(shader_type: str, shader_number: int) None[source]
load_shader
- Parameters:
shader_type – ShaderType
- Returns:
None