Merge pull request #20 from JoaquinIglesiasTurina/love12

Love12
This commit is contained in:
Caldas Lopes 2022-08-30 23:55:28 +02:00 committed by GitHub
commit de1a5f6b77
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 34 additions and 28 deletions

View File

@ -128,6 +128,10 @@ function newobject:draw()
-- set the object's draw order -- set the object's draw order
self:SetDrawOrder() self:SetDrawOrder()
love.graphics.setStencilMode("replace", "always", 1) -- start stencil
stencilfunc()
love.graphics.setStencilMode("keep", "greater", 0)
local drawfunc = self.Draw or self.drawfunc local drawfunc = self.Draw or self.drawfunc
if drawfunc then if drawfunc then
@ -140,10 +144,7 @@ function newobject:draw()
v:draw() v:draw()
end end
end end
love.graphics.stencil(stencilfunc)
love.graphics.setStencilTest("greater", 0)
local children = self.children local children = self.children
if children then if children then
for k, v in ipairs(children) do for k, v in ipairs(children) do
@ -155,7 +156,7 @@ function newobject:draw()
if drawfunc then if drawfunc then
drawfunc(self) drawfunc(self)
end end
love.graphics.setStencilTest() love.graphics.setStencilMode()
end end

View File

@ -124,8 +124,9 @@ function newobject:draw()
drawfunc(self) drawfunc(self)
end end
love.graphics.stencil(stencilfunc) love.graphics.setStencilMode("replace", "always", 1) -- start stencil
love.graphics.setStencilTest("greater", 0) stencilfunc()
love.graphics.setStencilMode("keep","greater", 0)
local children = self.children local children = self.children
if children then if children then
@ -137,7 +138,7 @@ function newobject:draw()
end end
end end
love.graphics.setStencilTest() love.graphics.setStencilMode()
drawfunc = self.DrawOver or self.drawoverfunc drawfunc = self.DrawOver or self.drawoverfunc
if drawfunc then if drawfunc then

View File

@ -98,15 +98,16 @@ function newobject:draw()
self:SetDrawOrder() self:SetDrawOrder()
love.graphics.stencil(stencilfunc) love.graphics.setStencilMode("replace", "always", 1) -- start stencil
love.graphics.setStencilTest("greater", 0) stencilfunc()
love.graphics.setStencilMode("keep", "greater", 0)
local drawfunc = self.Draw or self.drawfunc local drawfunc = self.Draw or self.drawfunc
if drawfunc then if drawfunc then
drawfunc(self) drawfunc(self)
end end
love.graphics.setStencilTest() love.graphics.setStencilMode("keep", "greater", 0)
end end

View File

@ -143,9 +143,10 @@ function newobject:draw()
if drawfunc then if drawfunc then
drawfunc(self) drawfunc(self)
end end
love.graphics.stencil(stencilfunc) love.graphics.setStencilMode("replace", "always", 1) -- start stencil
love.graphics.setStencilTest("greater", 0) stencilfunc()
love.graphics.setStencilMode("keep", "greater", 0)
local internals = self.internals local internals = self.internals
if internals then if internals then
@ -157,7 +158,7 @@ function newobject:draw()
end end
end end
love.graphics.setStencilTest() love.graphics.setStencilMode()
local children = self.children local children = self.children
if #children > 0 then if #children > 0 then

View File

@ -286,24 +286,25 @@ function newobject:draw()
if vbar and hbar then if vbar and hbar then
stencilfunc = function() love.graphics.rectangle("fill", x, y, width - 16, height - 16) end stencilfunc = function() love.graphics.rectangle("fill", x, y, width - 16, height - 16) end
end end
love.graphics.stencil(stencilfunc) love.graphics.setStencilMode("replace", "always", 1) -- start stencil
love.graphics.setStencilTest("greater", 0) stencilfunc()
love.graphics.setStencilMode("keep", "greater", 0)
local drawfunc = self.Draw or self.drawfunc local drawfunc = self.Draw or self.drawfunc
if drawfunc then if drawfunc then
drawfunc(self) drawfunc(self)
end end
love.graphics.setStencilTest()
local internals = self.internals local internals = self.internals
if internals then if internals then
for k, v in ipairs(internals) do for k, v in ipairs(internals) do
v:draw() v:draw()
end end
end end
love.graphics.setStencilMode()
drawfunc = self.DrawOver or self.drawoverfunc drawfunc = self.DrawOver or self.drawoverfunc
if drawfunc then if drawfunc then
drawfunc(self) drawfunc(self)

View File

@ -179,9 +179,10 @@ function newobject:draw()
end end
self:SetDrawOrder() self:SetDrawOrder()
love.graphics.stencil(stencilfunc) love.graphics.setStencilMode("replace", "always", 1) -- start stencil
love.graphics.setStencilTest("greater", 0) stencilfunc()
love.graphics.setStencilMode("keep", "greater", 0)
local drawfunc = self.Draw or self.drawfunc local drawfunc = self.Draw or self.drawfunc
if drawfunc then if drawfunc then
@ -194,8 +195,8 @@ function newobject:draw()
v:draw() v:draw()
end end
end end
love.graphics.setStencilTest() love.graphics.setStencilMode()
local internals = self.internals local internals = self.internals
if internals then if internals then