From 2a25fed8b966ba08fb0e3dbf5b8264e1d969e2c7 Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Wed, 14 Jul 2010 15:18:57 +0000 Subject: [PATCH] fix git-svn-id: http://svn.net-core.org/repos/t-engine4@914 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/engine/Entity.lua | 3 ++- game/engine/Shader.lua | 9 +++++---- src/shaders.c | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/game/engine/Entity.lua b/game/engine/Entity.lua index f915fd38cf..dff7b84f16 100644 --- a/game/engine/Entity.lua +++ b/game/engine/Entity.lua @@ -195,7 +195,8 @@ function _M:makeMapObject(tiles, idx) -- Setup shader if tiles.use_images and core.shader.active() and self.shader then - self._mo:shader(Shader.new(self.shader, self.shader_args).shad) + local shad = Shader.new(self.shader, self.shader_args) + if shad.shad then self._mo:shader(shad.shad) end end return self._mo, self.z diff --git a/game/engine/Shader.lua b/game/engine/Shader.lua index 106fe37d28..4ca66b1b07 100644 --- a/game/engine/Shader.lua +++ b/game/engine/Shader.lua @@ -101,7 +101,7 @@ function _M:createProgram(def) local shad = core.shader.newProgram() if def.vert then shad:attach(self:getVertex(def.vert)) end if def.frag then shad:attach(self:getFragment(def.frag)) end - shad:compile() + if not shad:compile() then return nil end return shad end @@ -119,9 +119,10 @@ function _M:loaded() _M.progs[self.totalname] = self:createProgram(def) self.shad = _M.progs[self.totalname] - - for k, v in pairs(def.args) do - self:setUniform(k, v) + if self.shad then + for k, v in pairs(def.args) do + self:setUniform(k, v) + end end end end diff --git a/src/shaders.c b/src/shaders.c index a913a56081..0ece12d5fa 100644 --- a/src/shaders.c +++ b/src/shaders.c @@ -140,7 +140,8 @@ static int program_compile(lua_State *L) } } #endif - return 0; + lua_pushboolean(L, TRUE); + return 1; } static int program_attach(lua_State *L) -- GitLab