aboutsummaryrefslogtreecommitdiff
path: root/src/libjin-lua/scripts/graphics/graphics.lua
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-02-10 22:23:21 +0800
committerchai <chaifix@163.com>2019-02-10 22:23:21 +0800
commit695eadc9d2a6d2f499b24ee6858325f6e22da077 (patch)
treec5d799495f55a679add482da21fea356ea48a626 /src/libjin-lua/scripts/graphics/graphics.lua
parentab7c14bbbf868c359a1cd1d9f1f8be6a580cec89 (diff)
*misc
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