vispy.visuals.shaders.multiprogram module¶
- class vispy.visuals.shaders.multiprogram.MultiProgram(vcode='', fcode='', gcode=None)¶
Bases:
object
A collection of ModularPrograms that emulates the API of a single ModularProgram.
A single Visual is often drawn in many different ways–viewed under different transforms, with different clipping boundaries, or with different colors as in picking and anaglyph stereo. Each draw may require a different program. To simplify this process, MultiProgram exposes an API that looks very much like a single ModularProgram, but internally manages many programs.
- add_program(name=None)¶
Create a program and add it to this MultiProgram.
It is the caller’s responsibility to keep a reference to the returned program.
The name must be unique, but is otherwise arbitrary and used for debugging purposes.
- bind(data)¶
- property frag¶
A wrapper around all fragment shaders contained in this MultiProgram.
- property geom¶
A wrapper around all geometry shaders contained in this MultiProgram.
- property vert¶
A wrapper around all vertex shaders contained in this MultiProgram.
- class vispy.visuals.shaders.multiprogram.MultiShader(program, shader)¶
Bases:
object
Emulates the API of a MainFunction while wrapping all vertex or fragment shaders in a MultiProgram.
Example:
mp = MultiProgram(vert, frag) mp.add_program('p1') mp.add_program('p2') # applies to all programs mp.vert['u_scale'] = (1, 2) # applies to one program mp.get_program('p1').frag['u_color'] = (1, 1, 1, 1)