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)