aboutsummaryrefslogtreecommitdiff
path: root/src/lua/embed/scripts/graphics.lua.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-12-20 18:29:16 +0800
committerchai <chaifix@163.com>2018-12-20 18:29:16 +0800
commit7ae40127f15f8f2cb963a7efeb018f7887ebc1ea (patch)
tree507bac722297d7dc4a2c97791f824a9a4f29379c /src/lua/embed/scripts/graphics.lua.h
parent4355806c576dbf9371a3d9d5481a81524f58f9e5 (diff)
*修改文件结构
Diffstat (limited to 'src/lua/embed/scripts/graphics.lua.h')
-rw-r--r--src/lua/embed/scripts/graphics.lua.h104
1 files changed, 82 insertions, 22 deletions
diff --git a/src/lua/embed/scripts/graphics.lua.h b/src/lua/embed/scripts/graphics.lua.h
index 1dddbf5..0a66127 100644
--- a/src/lua/embed/scripts/graphics.lua.h
+++ b/src/lua/embed/scripts/graphics.lua.h
@@ -27,44 +27,104 @@ jg.SpriteMode = {
ANIMATED = 3
}
-local default_shader = nil
-local default_shader_source = [[
-#VERTEX_SHADER
-
-Vertex vert(Vertex v)
-{
- return v;
+-- built in shaders
+jg.Shaders = {
+ Font = nil,
+ Texture = nil,
+ Sprite = nil,
+ SpriteSheet = nil,
+ Default = nil
}
-#END_VERTEX_SHADER
-
-#FRAGMENT_SHADER
-
-Color frag(Color col, Texture tex, Vertex v)
-{
- return col * texel(tex, v.uv);
-}
-
-#END_FRAGMENT_SHADER
-]]
+local function compileBuiltInShaders()
+ 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.SpriteSheet = 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.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
+ ]])
+end
local _init = jg.init
local initialized = false
-
jg.init = function(setting)
if initialized then
return initialized
end
initialized = _init(setting)
if initialized then
- default_shader = jg.newShader(default_shader_source)
- jg.useShader(default_shader)
+ compileBuiltInShaders()
+ jg.useShader(jg.Shaders.Default)
end
return initialized
end
jg.unuseShader = function()
- jg.useShader(default_shader)
+ jg.useShader(jg.Shaders.Default)
end
-- Reset all attributes to default value.