-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMaterial.py
35 lines (26 loc) · 1.16 KB
/
Material.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from typing import List
from OpenGL.GL import *
import Core
import glfw
from math import sin
class Shader(Core.Base_Shader):
pass
class ShaderVertex(Shader):
def __init__(self, path) -> None:
super().__init__(path, GL_VERTEX_SHADER)
class ShaderFragment(Shader):
def __init__(self, path) -> None:
super().__init__( path, GL_FRAGMENT_SHADER)
class ShaderGeometry(Shader):
def __init__(self, path) -> None:
super().__init__( path, GL_GEOMETRY_SHADER)
class Material(Core.Base_Material):
def __init__(self, shaders: List[Shader], dispose = True, uniforms: map = None) -> None:
super().__init__(shaders, dispose, uniforms)
class DefaultMaterial(Material):
def __init__(self) -> None:
shaders: List[Shader] = [None for i in range(len(Core.ShaderData))]
shaders[Core.ShaderData.VERTEX.value] = ShaderVertex("shaders/basic.vert")
shaders[Core.ShaderData.FRAGMENT.value] = ShaderFragment("shaders/basic.frag")
# shaders[Core.ShaderData.GEOMETRY.value] = ShaderGeometry("shaders/basic.gs")
super().__init__(shaders, True, {"time": sin(glfw.get_time()) })