--- @class Render --- @field shadowLayer love.Canvas --- @field spriteLayer love.Canvas --- @field floorLayer love.Canvas --- @field overlayLayer love.Canvas local render = {} render.__index = render function render:clear() love.graphics.setCanvas(self.shadowLayer) love.graphics.clear(1, 1, 1, 0) love.graphics.setCanvas(self.spriteLayer) love.graphics.clear() love.graphics.setCanvas(self.floorLayer) love.graphics.clear() love.graphics.setCanvas(self.overlayLayer) love.graphics.clear() end function render:draw() -- пол -> тени -> спрайты -> оверлей love.graphics.draw(self.floorLayer) love.graphics.setBlendMode("multiply", "premultiplied") love.graphics.draw(self.shadowLayer) love.graphics.setBlendMode("alpha") love.graphics.draw(self.spriteLayer) love.graphics.draw(self.overlayLayer) end local function new() return setmetatable({ shadowLayer = love.graphics.newCanvas(1280, 720), spriteLayer = love.graphics.newCanvas(1280, 720), floorLayer = love.graphics.newCanvas(1280, 720), overlayLayer = love.graphics.newCanvas(1280, 720), }, render) end return { new = new }