aboutsummaryrefslogtreecommitdiff
path: root/boltzgas/visual/shader.py
diff options
context:
space:
mode:
authorAdrian Kummerlaender2020-03-28 19:55:14 +0100
committerAdrian Kummerlaender2020-03-28 19:55:14 +0100
commit26e09c9f01eaf997b0b4f8fa831ed3873f66465a (patch)
tree8bee2f2ffbbb9f3f84f255aa46891efc19a5d050 /boltzgas/visual/shader.py
parent5e99925cd258ff68f1da7ce0bdb823efe785d8de (diff)
downloadboltzgas-26e09c9f01eaf997b0b4f8fa831ed3873f66465a.tar
boltzgas-26e09c9f01eaf997b0b4f8fa831ed3873f66465a.tar.gz
boltzgas-26e09c9f01eaf997b0b4f8fa831ed3873f66465a.tar.bz2
boltzgas-26e09c9f01eaf997b0b4f8fa831ed3873f66465a.tar.lz
boltzgas-26e09c9f01eaf997b0b4f8fa831ed3873f66465a.tar.xz
boltzgas-26e09c9f01eaf997b0b4f8fa831ed3873f66465a.tar.zst
boltzgas-26e09c9f01eaf997b0b4f8fa831ed3873f66465a.zip
Draw spheres in correct size
…using billboarding.
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)
+