diff options
author | chai <chaifix@163.com> | 2019-01-04 22:54:59 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-01-04 22:54:59 +0800 |
commit | c446e8186afa31c8d346383c0db8b8070fa563cd (patch) | |
tree | a2a0e088c51f1ba251756aa5ab50b27dc8eeef39 /src/libjin-lua/scripts/graphics/graphics.lua | |
parent | c42eb2529eead4b17c0c7f9da7ac9c41563a13fa (diff) |
*编译jsl shader失败时使用error shader
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 |