aboutsummaryrefslogtreecommitdiff
path: root/src/libjin-lua/scripts/graphics/graphics.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin-lua/scripts/graphics/graphics.lua')
-rw-r--r--src/libjin-lua/scripts/graphics/graphics.lua185
1 files changed, 77 insertions, 108 deletions
diff --git a/src/libjin-lua/scripts/graphics/graphics.lua b/src/libjin-lua/scripts/graphics/graphics.lua
index 9307083..beb5712 100644
--- a/src/libjin-lua/scripts/graphics/graphics.lua
+++ b/src/libjin-lua/scripts/graphics/graphics.lua
@@ -39,119 +39,88 @@ local function compileBuiltInShaders()
if jg.Shaders ~= nil then
return
end
- jg.Shaders = {}
- jg.Shaders.Font = jg.newShader[[
- #VERTEX_SHADER
- Vertex vert(Vertex v)
- {
- return v;
- }
- #END_VERTEX_SHADER
- #FRAGMENT_SHADER
- Color frag(Color col, Texture tex, Vertex v)
- {
- return Color(col.rgb, texel(tex, v.uv).a);
- }
- #END_FRAGMENT_SHADER
- ]]
- jg.Shaders.Texture = jg.newShader[[
- #VERTEX_SHADER
- Vertex vert(Vertex v)
- {
- return v;
- }
- #END_VERTEX_SHADER
- #FRAGMENT_SHADER
- Color frag(Color col, Texture tex, Vertex v)
- {
- return col * texel(tex, v.uv);
- }
- #END_FRAGMENT_SHADER
- ]]
- jg.Shaders.Sprite = jg.newShader[[
- #VERTEX_SHADER
- Vertex vert(Vertex v)
- {
- return v;
- }
- #END_VERTEX_SHADER
- #FRAGMENT_SHADER
- Color frag(Color col, Texture tex, Vertex v)
- {
- return col * texel(tex, v.uv);
- }
- #END_FRAGMENT_SHADER
- ]]
- jg.Shaders.SpriteBatch = jg.newShader[[
- #VERTEX_SHADER
- Vertex vert(Vertex v)
- {
- return v;
- }
- #END_VERTEX_SHADER
- #FRAGMENT_SHADER
- Color frag(Color col, Texture tex, Vertex v)
- {
- return col * texel(tex, v.uv);
- }
- #END_FRAGMENT_SHADER
- ]]
- jg.Shaders.Shape = jg.newShader[[
+ local default_vert_shader = [[
#VERTEX_SHADER
- Vertex vert(Vertex v)
- {
- return v;
- }
- #END_VERTEX_SHADER
- #FRAGMENT_SHADER
- Color frag(Color col, Texture tex, Vertex v)
- {
- return col;
- }
- #END_FRAGMENT_SHADER
+ Vertex vert(Vertex v)
+ {
+ return v;
+ }
+ #END_VERTEX_SHADER
+ ]]
+ local make_shader = function(frag_shader)
+ return jg.newShader(default_vert_shader .. frag_shader)
+ end
+ jg.Shaders = {}
+ jg.Shaders.Font = make_shader[[
+ #FRAGMENT_SHADER
+ Color frag(Color col, Texture tex, Vertex v)
+ {
+ return Color(col.rgb, texel(tex, v.uv).a);
+ }
+ #END_FRAGMENT_SHADER
+ ]]
+ jg.Shaders.Texture = make_shader[[
+ #FRAGMENT_SHADER
+ Color frag(Color col, Texture tex, Vertex v)
+ {
+ return col * texel(tex, v.uv);
+ }
+ #END_FRAGMENT_SHADER
+ ]]
+ jg.Shaders.Sprite = make_shader[[
+ #FRAGMENT_SHADER
+ Color frag(Color col, Texture tex, Vertex v)
+ {
+ return col * texel(tex, v.uv);
+ }
+ #END_FRAGMENT_SHADER
+ ]]
+ jg.Shaders.SpriteBatch = make_shader[[
+ #FRAGMENT_SHADER
+ Color frag(Color col, Texture tex, Vertex v)
+ {
+ return col * texel(tex, v.uv);
+ }
+ #END_FRAGMENT_SHADER
+ ]]
+ jg.Shaders.Shape = make_shader[[
+ #FRAGMENT_SHADER
+ Color frag(Color col, Texture tex, Vertex v)
+ {
+ return col;
+ }
+ #END_FRAGMENT_SHADER
]]
jg.Shaders.Mesh = jg.newShader[[
- #VERTEX_SHADER
+ #VERTEX_SHADER
in Vec4 color;
- Vertex vert(Vertex v)
- {
- return v;
- }
- #END_VERTEX_SHADER
- #FRAGMENT_SHADER
- Color frag(Color col, Texture tex, Vertex v)
- {
- return col * texel(tex, v.uv) * v.color;
- }
- #END_FRAGMENT_SHADER
+ Vertex vert(Vertex v)
+ {
+ return v;
+ }
+ #END_VERTEX_SHADER
+ #FRAGMENT_SHADER
+ Color frag(Color col, Texture tex, Vertex v)
+ {
+ return col * texel(tex, v.uv) * v.color;
+ }
+ #END_FRAGMENT_SHADER
+ ]]
+ jg.Shaders.Default = make_shader[[
+ #FRAGMENT_SHADER
+ Color frag(Color col, Texture tex, Vertex v)
+ {
+ return col * texel(tex, v.uv);
+ }
+ #END_FRAGMENT_SHADER
]]
- jg.Shaders.Default = jg.newShader[[
- #VERTEX_SHADER
- Vertex vert(Vertex v)
- {
- return v;
- }
- #END_VERTEX_SHADER
- #FRAGMENT_SHADER
- Color frag(Color col, Texture tex, Vertex v)
- {
- return col * texel(tex, v.uv);
- }
- #END_FRAGMENT_SHADER
- ]]
- jg.Shaders.Error = jg.newShader[[
- #VERTEX_SHADER
- Vertex vert(Vertex v)
- {
- return v;
- }
- #END_VERTEX_SHADER
- #FRAGMENT_SHADER
- Color frag(Color col, Texture tex, Vertex v)
- {
- return Color(1, 0, 1, 1);
- }
- #END_FRAGMENT_SHADER
+ jg.Shaders.Error = make_shader[[
+ #FRAGMENT_SHADER
+ Color frag(Color col, Texture tex, Vertex v)
+ {
+ return Color(1, 0, 1, 1);
+ }
+ #END_FRAGMENT_SHADER
]]
end