diff --git a/gamecore/modules/world/actors/utils/boxes/parent.lua b/gamecore/modules/world/actors/utils/boxes/parent.lua index d8538c6..9ae975a 100644 --- a/gamecore/modules/world/actors/utils/boxes/parent.lua +++ b/gamecore/modules/world/actors/utils/boxes/parent.lua @@ -40,7 +40,7 @@ function Box3D:new(owner, w, h, d) self.texture = {} self:setTopTexture() self:setBottomTexture() - self.texture.shadows = nil + self.texture.shadows = love.graphics.newCanvas(self.w, self.h) self:register() end @@ -123,19 +123,14 @@ end function Box3D:redrawShadowCanvas() if (self.needRedraw) then - local canvas = love.graphics.newCanvas(self.w, self.h) - love.graphics.setCanvas( canvas ) + love.graphics.setCanvas( self.texture.shadows ) + love.graphics.clear() for i,v in ipairs(self.shadowSources) do v.actor:drawShadow(v.x, v.y) end love.graphics.setCanvas( ) - local imagedata = canvas:newImageData() - self.texture.shadows = love.graphics.newImage( imagedata ) - imagedata:release() - canvas:release() - self.needRedraw = false end end