|
@@ -341,10 +341,31 @@ namespace opengl
|
|
int w_setColor(lua_State * L)
|
|
int w_setColor(lua_State * L)
|
|
{
|
|
{
|
|
Color c;
|
|
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);
|
|
|
|
- c.a = (unsigned char)luaL_optint(L, 4, 255);
|
|
|
|
|
|
+ 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);
|
|
|
|
+ lua_pushinteger(L, 4);
|
|
|
|
+ lua_gettable(L, -2);
|
|
|
|
+ c.a = (unsigned char)luaL_optint(L, -1, 255);
|
|
|
|
+ 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 = (unsigned char)luaL_optint(L, 4, 255);
|
|
|
|
+ }
|
|
instance->setColor(c);
|
|
instance->setColor(c);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|