-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathshader_program.py
More file actions
23 lines (17 loc) · 849 Bytes
/
shader_program.py
File metadata and controls
23 lines (17 loc) · 849 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class ShaderProgram:
def __init__(self, ctx):
self.ctx = ctx
self.programs = {}
self.programs['default'] = self.get_program('default')
self.programs['skybox'] = self.get_program('skybox')
self.programs['advanced_skybox'] = self.get_program('advanced_skybox')
self.programs['shadow_map'] = self.get_program('shadow_map')
def get_program(self, shader_program_name):
with open(f'shaders/{shader_program_name}.vert') as file:
vertex_shader = file.read()
with open(f'shaders/{shader_program_name}.frag') as file:
fragment_shader = file.read()
program = self.ctx.program(vertex_shader=vertex_shader, fragment_shader=fragment_shader)
return program
def destroy(self):
[program.release() for program in self.programs.values()]