From 75d03505ab1f24cc13e17439da335f387d05c63f Mon Sep 17 00:00:00 2001 From: vrld Date: Thu, 10 Mar 2011 14:16:01 +0100 Subject: [PATCH] Expose Framebuffer:set/getWrap to Lua --- .../graphics/opengl/wrap_Framebuffer.cpp | 36 ++++++++++++++++++- .../graphics/opengl/wrap_Framebuffer.h | 2 ++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/modules/graphics/opengl/wrap_Framebuffer.cpp b/src/modules/graphics/opengl/wrap_Framebuffer.cpp index a01976843..a15c18d41 100644 --- a/src/modules/graphics/opengl/wrap_Framebuffer.cpp +++ b/src/modules/graphics/opengl/wrap_Framebuffer.cpp @@ -51,7 +51,7 @@ namespace opengl if (!Image::getConstant(minstr, f.min)) return luaL_error(L, "Invalid min filter mode: %s", minstr); if (!Image::getConstant(magstr, f.mag)) - return luaL_error(L, "Invalid max filter mode: %s", minstr); + return luaL_error(L, "Invalid max filter mode: %s", magstr); fbo->setFilter(f); return 0; @@ -73,11 +73,45 @@ namespace opengl return 2; } + int w_Framebuffer_setWrap(lua_State * L) + { + Framebuffer * fbo = luax_checkfbo(L, 1); + const char * wrap_s = luaL_checkstring(L, 2); + const char * wrap_t = luaL_checkstring(L, 3); + + Image::Wrap w; + if (!Image::getConstant(wrap_s, w.s)) + return luaL_error(L, "Invalid wrap mode: %s", wrap_s); + if (!Image::getConstant(wrap_t, w.t)) + return luaL_error(L, "Invalid wrap mode: %s", wrap_t); + + fbo->setWrap(w); + return 0; + } + + int w_Framebuffer_getWrap(lua_State * L) + { + Framebuffer * fbo = luax_checkfbo(L, 1); + Image::Wrap w = fbo->getWrap(); + + const char * wrap_s; + const char * wrap_t; + Image::getConstant(w.s, wrap_s); + Image::getConstant(w.t, wrap_t); + + lua_pushstring(L, wrap_s); + lua_pushstring(L, wrap_t); + + return 2; + } + static const luaL_Reg functions[] = { { "renderTo", w_Framebuffer_renderTo }, { "getImageData", w_Framebuffer_getImageData }, { "setFilter", w_Framebuffer_setFilter }, { "getFilter", w_Framebuffer_getFilter }, + { "setWrap", w_Framebuffer_setWrap }, + { "getWrap", w_Framebuffer_getWrap }, { 0, 0 } }; diff --git a/src/modules/graphics/opengl/wrap_Framebuffer.h b/src/modules/graphics/opengl/wrap_Framebuffer.h index ae0cc8873..55bf99da4 100644 --- a/src/modules/graphics/opengl/wrap_Framebuffer.h +++ b/src/modules/graphics/opengl/wrap_Framebuffer.h @@ -17,6 +17,8 @@ namespace opengl int w_Framebuffer_getImageData(lua_State * L); int w_Framebuffer_setFilter(lua_State * L); int w_Framebuffer_getFilter(lua_State * L); + int w_Framebuffer_setWrap(lua_State * L); + int w_Framebuffer_getWrap(lua_State * L); int luaopen_framebuffer(lua_State * L); } // opengl