Package toon :: Module convolution
[hide private]
[frames] | no frames]

Source Code for Module toon.convolution

 1  #!/usr/bin/env python 
 2  """ 
 3  Convolution shader using Python 
 4   
 5  """ 
 6  from rats.serialize import Serializable 
 7  from rats.glsl import ShaderProgram 
 8  from rats.glsl import ShaderError 
 9   
10 -class ShaderEffect(Serializable):
11 """ 12 Generic GLSL Shader Effect 13 """ 14 name = "default_" # prefix for variables names
15 - def __init__(self, **variables):
16 self.variables = {} # uniform config values 17 self.variables.update(config) 18 self.vert = "" # vertex shader text 19 self.frag = "" # fragment shader text 20 self.texture0_id = 0 # texture unit number (most likely 0) 21 self.program = None # glsl compiled program 22 self.enabled = True
23
24 - def set_uniforms(self):
25 """Define all uniforms variables here. 26 """ 27 pass
28
29 - def program_init(self):
30 """At application startup. 31 """ 32 try: 33 self.program = ShaderProgram() 34 self.program.add_shader_text(GL_VERTEX_SHADER_ARB, self.vert) 35 self.program.add_shader_text(GL_FRAGMENT_SHADER_ARB, self.frag) 36 self.program.linkShaders() 37 except Exception, e: 38 print e.message
39
40 - def program_use_begin(self):
41 """Before rendering a frame. 42 """ 43 if self.enabled: 44 try: 45 self.program.enable() 46 except Exception, e: 47 print e.message
48
49 - def program_use_end(self):
50 """After rendering a frame. 51 """ 52 try: 53 self.program.disable() 54 except Exception, e: 55 print e.message
56