From 0167b360e4c2b1515e24086d62357062cd398b8c Mon Sep 17 00:00:00 2001 From: xgoff Date: Thu, 2 Aug 2012 11:35:37 -0500 Subject: handle stencils... by discarding them. i was expecting to have to jump through hoops to not have to call stencil functions multiple times but fortunately that is not the case --- README.md | 1 - fakecanvas.lua | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8aeea02..1344511 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,6 @@ love.graphics.setCanvas(canvas3) ``` the background gets saved when `setCanvas()` is called with an argument, but it doesn't get restored until it's called without an argument. currently only one state is saved so it's possible the above code would trash the background. this isn't a problem if you only ever use `renderTo()` because that automatically handles the `setCanvas()` calls * `love.graphics.translate()`, `love.graphics.rotate()`, `love.graphics.scale()`, and `love.graphics.shear()` are not handled -* stencils are not handled * will changing modes during canvas drawing destroy the contents? beware: i have done only minimal testing of this library so it's possible there are cases where it doesn't work correctly or at all, or that the entire idea is ultimately unworkable! diff --git a/fakecanvas.lua b/fakecanvas.lua index c881693..172d17b 100644 --- a/fakecanvas.lua +++ b/fakecanvas.lua @@ -147,6 +147,8 @@ savefbstate() local function setCanvas (...) assert(select("#", ...) == 0 or (select("#", ...) == 1 and type(...) == "userdata"), "Incorrect parameter type: expected userdata") + love.graphics.setStencil() -- fortunately LOVE does this as well which makes things much easier + local to = ... if to then current_canvas = canvases[to] -- cgit v1.2.3-54-g00ecf