30 lines
706 B
Python
30 lines
706 B
Python
import gpu
|
|
from pathlib import Path
|
|
|
|
class LazyDict(dict):
|
|
def __getitem__(self, k):
|
|
v = super().__getitem__(k)
|
|
if callable(v):
|
|
v = v()
|
|
super().__setitem__(k, v)
|
|
return v
|
|
|
|
def get(self, k, default=None):
|
|
if k in self:
|
|
return self.__getitem__(k)
|
|
return default
|
|
|
|
|
|
PICKERS = {}
|
|
|
|
|
|
MODULE_DIR = Path(__file__).parent
|
|
SHADER_DIR = MODULE_DIR / 'shaders'
|
|
|
|
SHADERS = LazyDict()
|
|
|
|
vertex_shader = Path(SHADER_DIR, "dash_shader.vert").read_text(encoding='utf-8')
|
|
fragment_shader = Path(SHADER_DIR, "dash_shader.frag").read_text(encoding='utf-8')
|
|
|
|
SHADERS['dashed_line'] = lambda : gpu.types.GPUShader(vertex_shader, fragment_shader)
|