From cee1a95b823763670075286dea2c0a2521f55f9b Mon Sep 17 00:00:00 2001 From: Bart van Strien Date: Sun, 28 Nov 2010 11:21:26 +0100 Subject: [PATCH] Table support for setBackgroundColor (bug #113) --- src/modules/graphics/opengl/wrap_Graphics.cpp | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/modules/graphics/opengl/wrap_Graphics.cpp b/src/modules/graphics/opengl/wrap_Graphics.cpp index 676f6511b..ee50d046a 100644 --- a/src/modules/graphics/opengl/wrap_Graphics.cpp +++ b/src/modules/graphics/opengl/wrap_Graphics.cpp @@ -389,9 +389,26 @@ namespace opengl int w_setBackgroundColor(lua_State * L) { Color c; - c.r = (unsigned char)luaL_checkint(L, 1); - c.g = (unsigned char)luaL_checkint(L, 2); - c.b = (unsigned char)luaL_checkint(L, 3); + if (lua_istable(L, 1)) { + lua_pushinteger(L, 1); + lua_gettable(L, -2); + c.r = (unsigned char)luaL_checkint(L, -1); + lua_pop(L, 1); + lua_pushinteger(L, 2); + lua_gettable(L, -2); + c.g = (unsigned char)luaL_checkint(L, -1); + lua_pop(L, 1); + lua_pushinteger(L, 3); + lua_gettable(L, -2); + c.b = (unsigned char)luaL_checkint(L, -1); + lua_pop(L, 1); + } + else + { + c.r = (unsigned char)luaL_checkint(L, 1); + c.g = (unsigned char)luaL_checkint(L, 2); + c.b = (unsigned char)luaL_checkint(L, 3); + } c.a = 255; instance->setBackgroundColor(c); return 0;