From 68d66f3f989e09bed1580907c0a90859c719de82 Mon Sep 17 00:00:00 2001 From: bjorn Date: Fri, 24 Aug 2018 14:47:35 -0700 Subject: [PATCH] Canvas:renderTo; --- src/api/types/canvas.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/api/types/canvas.c b/src/api/types/canvas.c index d147c578..901d6ac4 100644 --- a/src/api/types/canvas.c +++ b/src/api/types/canvas.c @@ -1,5 +1,6 @@ #include "api.h" #include "graphics/canvas.h" +#include "graphics/graphics.h" static int luax_checkattachment(lua_State* L, int index, Attachment* attachment) { attachment->texture = luax_checktype(L, index++, Texture); @@ -33,8 +34,20 @@ int l_lovrCanvasSetTexture(lua_State* L) { return 0; } +int l_lovrCanvasRenderTo(lua_State* L) { + Canvas* canvas = luax_checktype(L, 1, Canvas); + luaL_checktype(L, 2, LUA_TFUNCTION); + int argumentCount = lua_gettop(L) - 2; + Canvas* old = lovrGraphicsGetCanvas(); + lovrGraphicsSetCanvas(canvas); + lua_call(L, argumentCount, 0); + lovrGraphicsSetCanvas(old); + return 0; +} + const luaL_Reg lovrCanvas[] = { { "getTexture", l_lovrCanvasGetTexture }, { "setTexture", l_lovrCanvasSetTexture }, + { "renderTo", l_lovrCanvasRenderTo }, { NULL, NULL } };