aboutsummaryrefslogtreecommitdiff
path: root/boltzgas/visual/shader.py
diff options
context:
space:
mode:
Diffstat (limited to 'boltzgas/visual/shader.py')
-rw-r--r--boltzgas/visual/shader.py15
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)
+