summaryrefslogtreecommitdiff
path: root/src/shader_shim.moon
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_shim.moon')
-rw-r--r--src/shader_shim.moon24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/shader_shim.moon b/src/shader_shim.moon
index 77ad5a2..76e0aec 100644
--- a/src/shader_shim.moon
+++ b/src/shader_shim.moon
@@ -6,21 +6,17 @@ inputs = {
"@height": win.height
}
-verts, frags = {}, {}
shaders = setmetatable({},{
__index:(self, key) ->
- if not (verts[key] and frags[key])
- vert_name = "shaders/" .. key .. ".vert"
- frag_name = "shaders/" .. key .. ".frag"
- vert = assert(am.load_string(vert_name), "Failed to find " .. vert_name)
- frag = assert(am.load_string(frag_name), "Failed to find " .. frag_name)
- vert_subbed = vert\gsub("@%b{}",(n) -> tostring(inputs[n]))
- frag_subbed = frag\gsub("@%b{}",(n) -> tostring(inputs[n]))
- succ, program = pcall(am.program, vert_subbed, frag_subbed)
- if not succ
- error(string.format("Failed compiling shader %q: %s vertex shader: %s fragment shader: %s", key, program, vert_subbed, frag_subbed))
- verts[key] = vert_subbed
- frags[key] = frag_subbed
- am.use_program(am.program(verts[key], frags[key]))
+ vert_name = "shaders/" .. key .. ".vert"
+ frag_name = "shaders/" .. key .. ".frag"
+ vert = assert(am.load_string(vert_name), "Failed to find " .. vert_name)
+ frag = assert(am.load_string(frag_name), "Failed to find " .. frag_name)
+ vert_subbed = vert\gsub("@%b{}",(n) -> tostring(inputs[n]))
+ frag_subbed = frag\gsub("@%b{}",(n) -> tostring(inputs[n]))
+ succ, program = pcall(am.program, vert_subbed, frag_subbed)
+ if not succ
+ error(string.format("Failed compiling shader %q: %s vertex shader: %s fragment shader: %s", key, program, vert_subbed, frag_subbed))
+ am.use_program(am.program(vert_subbed, frag_subbed))
})
shaders