diff options
author | chai <chaifix@163.com> | 2018-12-20 18:29:16 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-12-20 18:29:16 +0800 |
commit | 7ae40127f15f8f2cb963a7efeb018f7887ebc1ea (patch) | |
tree | 507bac722297d7dc4a2c97791f824a9a4f29379c /src/lua/embed/scripts/graphics.lua.h | |
parent | 4355806c576dbf9371a3d9d5481a81524f58f9e5 (diff) |
*修改文件结构
Diffstat (limited to 'src/lua/embed/scripts/graphics.lua.h')
-rw-r--r-- | src/lua/embed/scripts/graphics.lua.h | 104 |
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. |