The old love.graphics stencil APIs are deprecated, not removed.

This commit is contained in:
Sasha Szpakowski
2023-02-11 11:35:04 -04:00
parent 1a586f8156
commit 60a8fca45c
2 changed files with 47 additions and 4 deletions
+45 -2
View File
@@ -24,8 +24,10 @@ misrepresented as being the original software.
local table_concat = table.concat
local ipairs = ipairs
local pcall = pcall
local graphics = love.graphics
function love.graphics.newVideo(file, settings)
function graphics.newVideo(file, settings)
settings = settings == nil and {} or settings
if type(settings) ~= "table" then error("bad argument #2 to newVideo (expected table)", 2) end
@@ -50,7 +52,48 @@ function love.graphics.newVideo(file, settings)
return video
end
function love.graphics._transformGLSLErrorMessages(message)
function graphics.stencil(func, action, value, keepvalues)
love.markDeprecated(2, "love.graphics.stencil", "function", "replaced", "love.graphics.setStencilMode")
if not keepvalues then
graphics.clear(false, true, false)
end
if value == nil then value = 1 end
graphics.setStencilMode(action, "always", value)
local mr, mg, mb, ma = graphics.getColorMask()
graphics.setColorMask(false)
local success, err = pcall(func)
graphics.setColorMask(mr, mg, mb, ma)
graphics.setStencilMode()
if not success then
error(err, 2)
end
end
function graphics.setStencilTest(mode, value)
love.markDeprecated(2, "love.graphics.setStencilTest", "function", "replaced", "love.graphics.setStencilMode")
if mode ~= nil then
graphics.setStencilMode("keep", mode, value)
else
graphics.setStencilMode()
end
end
function graphics.getStencilTest()
love.markDeprecated(2, "love.graphics.getStencilTest", "function", "replaced", "love.graphics.getStencilMode")
local action, mode, value = graphics.getStencilMode()
return mode, value
end
function graphics._transformGLSLErrorMessages(message)
local shadertype = message:match("Cannot compile (%a+) shader code")
local compiling = shadertype ~= nil
if not shadertype then