Advertisement
Snusmumriken

love2d postprocessing

Oct 24th, 2016
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. assert(love.graphics, 'This module require love.graphics module')
  2. local graphics = love.graphics
  3. local buffer = graphics.newCanvas()
  4. local resX, resY = graphics.getDimensions()
  5. return function(canvas, shader, clear)
  6. assert(canvas:type() == 'Canvas', 'Argument #1 error: love2d-canvas expected. Use post processing only with canvases.')
  7. assert(shader:type() == 'Shader', 'Argument #2 error: love2d-shader expected.')
  8. local x, y = graphics.getDimensions()
  9. if x ~= resX or y ~= resY then buffer = graphics.newCanvas(); resX, resY = x, y end
  10. graphics.push('all')
  11. graphics.setCanvas(buffer)
  12. if clear then graphics.clear(0.0, 0.0, 0.0, 0.0) end
  13. graphics.setShader(shader) graphics.draw(canvas) graphics.setShader()
  14. graphics.setCanvas(canvas) graphics.draw(buffer)
  15. graphics.pop()
  16. end
  17.  
  18.  
  19. --[[
  20. Reference:
  21. postprocessing = require 'module' -- replace 'module' to your file
  22. framebuffer = love.graphics.newCanvas()
  23.  
  24. love.graphics.setCanvas(framebuffer)
  25. --draw any stuff
  26. love.graphics.setCanvas()
  27.  
  28. postprocessing(framebuffer, shader1) -- apply first shader
  29. postprocessing(framebuffer, shader2) -- apply second shader
  30.  
  31. love.graphics.draw(framebuffer) -- draw buffers with postprocessing
  32. ]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement