mirror of
https://github.com/tanema/light_world.lua.git
synced 2024-12-24 20:24:19 +00:00
just some refactoring
This commit is contained in:
parent
5208475e18
commit
297952673b
12
lib/init.lua
12
lib/init.lua
@ -89,7 +89,6 @@ function light_world:update(dt)
|
|||||||
self.bodies[i]:update(dt)
|
self.bodies[i]:update(dt)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
for i = 1, #self.lights do
|
for i = 1, #self.lights do
|
||||||
self.lights[i].is_on_screen = self.lights[i]:inRange(self.l,self.t,self.w,self.h,self.s)
|
self.lights[i].is_on_screen = self.lights[i]:inRange(self.l,self.t,self.w,self.h,self.s)
|
||||||
end
|
end
|
||||||
@ -99,7 +98,7 @@ function light_world:draw(cb)
|
|||||||
util.drawto(self.render_buffer, self.l, self.t, self.s, function()
|
util.drawto(self.render_buffer, self.l, self.t, self.s, function()
|
||||||
cb( self.l,self.t,self.w,self.h,self.s)
|
cb( self.l,self.t,self.w,self.h,self.s)
|
||||||
_ = self.disableMaterial or self:drawMaterial( self.l,self.t,self.w,self.h,self.s)
|
_ = self.disableMaterial or self:drawMaterial( self.l,self.t,self.w,self.h,self.s)
|
||||||
self:drawNormalShading( self.l,self.t,self.w,self.h,self.s)
|
self:drawShadows( self.l,self.t,self.w,self.h,self.s)
|
||||||
_ = self.disableGlow or self:drawGlow( self.l,self.t,self.w,self.h,self.s)
|
_ = self.disableGlow or self:drawGlow( self.l,self.t,self.w,self.h,self.s)
|
||||||
_ = self.disableRefraction or self:drawRefraction( self.l,self.t,self.w,self.h,self.s)
|
_ = self.disableRefraction or self:drawRefraction( self.l,self.t,self.w,self.h,self.s)
|
||||||
_ = self.disableReflection or self:drawReflection( self.l,self.t,self.w,self.h,self.s)
|
_ = self.disableReflection or self:drawReflection( self.l,self.t,self.w,self.h,self.s)
|
||||||
@ -119,7 +118,7 @@ function light_world:drawBlur(blendmode, blur, canvas, canvas2, l, t, w, h, s)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- draw normal shading
|
-- draw normal shading
|
||||||
function light_world:drawNormalShading(l,t,w,h,s)
|
function light_world:drawShadows(l,t,w,h,s)
|
||||||
-- create normal map
|
-- create normal map
|
||||||
self.normalMap:clear()
|
self.normalMap:clear()
|
||||||
util.drawto(self.normalMap, l, t, s, function()
|
util.drawto(self.normalMap, l, t, s, function()
|
||||||
@ -162,12 +161,11 @@ function light_world:drawNormalShading(l,t,w,h,s)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- add in ambient color
|
-- add in ambient color
|
||||||
self.normal:clear(255, 255, 255)
|
util.drawCanvasToCanvas(self.normal2, self.normal)
|
||||||
util.drawCanvasToCanvas(self.normal2, self.normal, {blendmode = "alpha"})
|
util.drawto(self.normal, 0, 0, 1, function()
|
||||||
util.drawto(self.normal, l, t, s, function()
|
|
||||||
love.graphics.setBlendMode("additive")
|
love.graphics.setBlendMode("additive")
|
||||||
love.graphics.setColor({self.ambient[1], self.ambient[2], self.ambient[3]})
|
love.graphics.setColor({self.ambient[1], self.ambient[2], self.ambient[3]})
|
||||||
love.graphics.rectangle("fill", -l/s, -t/s, w/s,h/s)
|
love.graphics.rectangle("fill", 0, 0, w,h)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
light_world:drawBlur("alpha", self.shadowBlur, self.normal, self.normal2, l, t, w, h, s)
|
light_world:drawBlur("alpha", self.shadowBlur, self.normal, self.normal2, l, t, w, h, s)
|
||||||
|
29
lib/util.lua
29
lib/util.lua
@ -3,29 +3,26 @@ local util = {}
|
|||||||
function util.drawCanvasToCanvas(canvas, other_canvas, options)
|
function util.drawCanvasToCanvas(canvas, other_canvas, options)
|
||||||
options = options or {}
|
options = options or {}
|
||||||
|
|
||||||
local last_buffer = love.graphics.getCanvas()
|
util.drawto(other_canvas, 0, 0, 1, function()
|
||||||
love.graphics.push()
|
if options["blendmode"] then
|
||||||
love.graphics.origin()
|
love.graphics.setBlendMode(options["blendmode"])
|
||||||
love.graphics.setCanvas(other_canvas)
|
end
|
||||||
if options["blendmode"] then
|
if options["shader"] then
|
||||||
love.graphics.setBlendMode(options["blendmode"])
|
love.graphics.setShader(options["shader"])
|
||||||
end
|
end
|
||||||
if options["shader"] then
|
if options["color"] then
|
||||||
love.graphics.setShader(options["shader"])
|
love.graphics.setColor(unpack(options["color"]))
|
||||||
end
|
else
|
||||||
if options["color"] then
|
|
||||||
love.graphics.setColor(unpack(options["color"]))
|
|
||||||
end
|
|
||||||
love.graphics.setColor(255,255,255)
|
love.graphics.setColor(255,255,255)
|
||||||
love.graphics.draw(canvas,0,0)
|
end
|
||||||
love.graphics.setCanvas(last_buffer)
|
love.graphics.draw(canvas,0,0)
|
||||||
if options["blendmode"] then
|
if options["blendmode"] then
|
||||||
love.graphics.setBlendMode("alpha")
|
love.graphics.setBlendMode("alpha")
|
||||||
end
|
end
|
||||||
if options["shader"] then
|
if options["shader"] then
|
||||||
love.graphics.setShader()
|
love.graphics.setShader()
|
||||||
end
|
end
|
||||||
love.graphics.pop()
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
function util.drawto(canvas, x, y, scale, cb)
|
function util.drawto(canvas, x, y, scale, cb)
|
||||||
|
Loading…
Reference in New Issue
Block a user