Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function postprocessing()
- local graphics = love.graphics --optimisation cache
- local buffer = graphics.newCanvas() --buffer in upvalue
- local resX, resY = graphics.getDimensions()
- return function(canvas, shader)
- local x, y = graphics.getDimensions()
- if x ~= resX or y ~= resY then buffer = graphics.newCanvas(); resX, resY = x, y end
- graphics.setCanvas(buffer)
- graphics.setShader(shader)
- graphics.draw(canvas)
- graphics.setShader()
- graphics.setCanvas(canvas)
- graphics.draw(buffer)
- graphics.setCanvas()
- end
- end
- --using:
- function love.load()
- -- new postprocessor
- post = postprocessing()
- -- framebuffer
- canvas = love.graphics.newCanvas()
- -- loading shaders
- shader1 = love.graphics.newShader('shader1.glsl')
- shader2 = love.graphics.newShader('shader2.glsl')
- end
- function love.draw()
- love.graphics.setCanvas(canvas)
- love.graphics.rectangle('fill', 100, 200, 100, 200)
- love.graphics.setCanvas()
- -- applying shaders
- post(canvas, shader1)
- post(canvas, shader2)
- -- draw framebuffer
- love.graphics.draw(canvas)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement