diff options
author | chai <chaifix@163.com> | 2019-01-07 09:54:08 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-01-07 09:54:08 +0800 |
commit | 2af7f2f5e3da8f6c236e7996781950e1bc6c1f9c (patch) | |
tree | f6a8a9618e146c93e4d4d964a6e13cd16f528693 /src/libjin-lua/scripts/graphics/graphics.lua | |
parent | 909e544ed322b28a6f59febf3213e05068e9e93c (diff) | |
parent | da056982e50bdd9cb9f944691cc88ca98b053b77 (diff) |
Merge branch 'master' of warmcat.org:/home/git-repo/Jin
Diffstat (limited to 'src/libjin-lua/scripts/graphics/graphics.lua')
-rw-r--r-- | src/libjin-lua/scripts/graphics/graphics.lua | 48 |
1 files changed, 43 insertions, 5 deletions
diff --git a/src/libjin-lua/scripts/graphics/graphics.lua b/src/libjin-lua/scripts/graphics/graphics.lua index ae896d0..3abb64d 100644 --- a/src/libjin-lua/scripts/graphics/graphics.lua +++ b/src/libjin-lua/scripts/graphics/graphics.lua @@ -138,7 +138,21 @@ local function compileBuiltInShaders() 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 + ]] end local _init = jg.init @@ -155,10 +169,6 @@ jg.init = function(setting) return initialized end -jg.unuseShader = function() - jg.useShader(jg.Shaders.Default) -end - -- Reset all attributes to default value. jg.reset = function() jg.setColor(255, 255, 255, 255) @@ -167,3 +177,31 @@ jg.reset = function() jg.unsetFont() jg.unuseShader() end + +jg.unuseShader = function() + jg.useShader(jg.Shaders.Default) +end + +local _newShader = jg.newShader + +jg.newShader = function(program) + local shader = _newShader(program) + if shader == nil then + jin.log.error("Compile shader failed:\n" .. debug.traceback()) + return jg.Shaders.Error + else + return shader + end +end + +local _newShaderf = jg.newShaderf + +jg.newShaderf = function(file) + local shader = _newShaderf(file) + if shader == nil then + jin.log.error("Compile shader failed:\n" .. debug.traceback()) + return jg.Shaders.Error + else + return shader + end +end |