From c446e8186afa31c8d346383c0db8b8070fa563cd Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 4 Jan 2019 22:54:59 +0800 Subject: =?UTF-8?q?*=E7=BC=96=E8=AF=91jsl=20shader=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=97=B6=E4=BD=BF=E7=94=A8error=20shader?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin-lua/scripts/graphics/graphics.lua | 48 +++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 5 deletions(-) (limited to 'src/libjin-lua/scripts/graphics/graphics.lua') 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 -- cgit v1.1-26-g67d0