diff options
Diffstat (limited to 'boltzgas/visual/shader.py')
-rw-r--r-- | boltzgas/visual/shader.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/boltzgas/visual/shader.py b/boltzgas/visual/shader.py index b4295a8..c6c035b 100644 --- a/boltzgas/visual/shader.py +++ b/boltzgas/visual/shader.py @@ -1,4 +1,4 @@ -from OpenGL.GL import GL_VERTEX_SHADER, GL_FRAGMENT_SHADER +from OpenGL.GL import GL_VERTEX_SHADER, GL_FRAGMENT_SHADER, GL_GEOMETRY_SHADER from OpenGL.GL import shaders class Shader: @@ -13,3 +13,16 @@ class Shader: def use(self): shaders.glUseProgram(self.program) +class GeometryShader: + def __init__(self, fragment_src, geometry_src, vertex_src, uniform): + self.program = shaders.compileProgram( + shaders.compileShader(vertex_src, GL_VERTEX_SHADER), + shaders.compileShader(geometry_src, GL_GEOMETRY_SHADER), + shaders.compileShader(fragment_src, GL_FRAGMENT_SHADER)) + self.uniform = { } + for name in uniform: + self.uniform[name] = shaders.glGetUniformLocation(self.program, name) + + def use(self): + shaders.glUseProgram(self.program) + |