MCPcopy Create free account
hub / github.com/vispy/vispy / ModularProgram

Class ModularProgram

vispy/visuals/shaders/program.py:19–161  ·  view source on GitHub ↗

Shader program using Function instances as basis for its shaders. Automatically rebuilds program when functions have changed and uploads program variables.

Source from the content-addressed store, hash-verified

17
18
19class ModularProgram(Program):
20 """
21 Shader program using Function instances as basis for its shaders.
22
23 Automatically rebuilds program when functions have changed and uploads
24 program variables.
25 """
26
27 def __init__(self, vcode='', fcode='', gcode=None):
28 Program.__init__(self)
29
30 self.changed = EventEmitter(source=self, type='program_change')
31
32 # Cache state of Variables so we know which ones require update
33 self._variable_cache = WeakKeyDictionary()
34
35 # List of settable variables to be checked for value changes
36 self._variables = []
37
38 self._vert = MainFunction('vertex', '')
39 self._frag = MainFunction('fragment', '')
40 self._vert._dependents[self] = None
41 self._frag._dependents[self] = None
42 self._geom = None
43
44 self.vert = vcode
45 self.frag = fcode
46 self.geom = gcode
47
48 @property
49 def vert(self):
50 return self._vert
51
52 @vert.setter
53 def vert(self, vcode):
54 vcode = preprocess(vcode)
55 self._vert.code = vcode
56 self._need_build = True
57 self.changed(code_changed=True, value_changed=False)
58
59 @property
60 def frag(self):
61 return self._frag
62
63 @frag.setter
64 def frag(self, fcode):
65 fcode = preprocess(fcode)
66 self._frag.code = fcode
67 self._need_build = True
68 self.changed(code_changed=True, value_changed=False)
69
70 @property
71 def geom(self):
72 return self._geom
73
74 @geom.setter
75 def geom(self, gcode):
76 if gcode is None:

Callers 3

__init__Method · 0.90
__init__Method · 0.85
add_programMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…