@@ -107,17 +107,18 @@ effect.py
107
107
108
108
.. code :: python
109
109
110
- from demosys.effects import Effect
110
+ from demosys.effects import effect
111
111
from demosys.opengl import geometry, FBO
112
112
from OpenGL import GL
113
113
114
- class CubeEffect (Effect ):
114
+ class CubeEffect (effect . Effect ):
115
115
""" Rotating cube with UVs and normals"""
116
116
def init (self ):
117
117
self .shader = self .get_shader(' cube/cube.glsl' )
118
118
self .texture = self .get_texture(' cube/texture.png' )
119
- self .cube = geometry.cube(2.0 )
119
+ self .cube = geometry.cube(2.0 , 2.0 , 2.0 )
120
120
121
+ @effect.bind_target
121
122
def draw (self , time , target ):
122
123
GL .glEnable(GL .GL_DEPTH_TEST )
123
124
@@ -128,11 +129,11 @@ effect.py
128
129
proj_m = self .create_projection(fov = 60.0 )
129
130
130
131
# The VAO and shader will do a a little dance and agree on attributes
131
- self .cube.bind(self .shader)
132
- self .cube_shader. uniform_mat4(" ProjM " , proj_m)
133
- self .cube_shader. uniform_mat4(" ModelViewM " , mv_m)
134
- self .cube_shader. uniform_mat3(" NormalM " , normal_m)
135
- self .cube_shader .uniform_sampler_2d(0 , " texture0" , self .texture)
132
+ with self .cube.bind(self .shader) as shader:
133
+ shader. uniform_mat4(" m_proj " , proj_m)
134
+ shader. uniform_mat4(" m_mv " , mv_m)
135
+ shader. uniform_mat3(" m_normal " , normal_m)
136
+ shader .uniform_sampler_2d(0 , " texture0" , self .texture)
136
137
self .cube.draw()
137
138
138
139
There you go.
0 commit comments