From 75ef8db0d058158c10951a4184186f8c6cc27acc Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Sat, 27 Mar 2021 22:35:43 +0100 Subject: Initial public commit of this basic MD code Simulation of interacting particles --- interacticle/visual/shader.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 interacticle/visual/shader.py (limited to 'interacticle/visual/shader.py') diff --git a/interacticle/visual/shader.py b/interacticle/visual/shader.py new file mode 100644 index 0000000..c6c035b --- /dev/null +++ b/interacticle/visual/shader.py @@ -0,0 +1,28 @@ +from OpenGL.GL import GL_VERTEX_SHADER, GL_FRAGMENT_SHADER, GL_GEOMETRY_SHADER +from OpenGL.GL import shaders + +class Shader: + def __init__(self, fragment_src, vertex_src, uniform): + self.program = shaders.compileProgram( + shaders.compileShader(vertex_src, GL_VERTEX_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) + +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) + -- cgit v1.2.3