RageColor::PushTable, RageColor::FromStack
This is PushTable and not PushSelf, to distinguish this from the PushSelf used in other classes. Classes that can PushSelf actually push a reference to itself to Lua, but that's only valid for objects with a lifetime; many RageColors are temporaries.
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
#include "global.h"
|
||||
#include "RageTypes.h"
|
||||
#include "LuaManager.h"
|
||||
|
||||
void RageColor::PushTable( lua_State *L ) const
|
||||
{
|
||||
lua_newtable( L );
|
||||
int iTable = lua_gettop(L);
|
||||
|
||||
lua_pushnumber( L, r );
|
||||
lua_rawseti( L, iTable, 1 );
|
||||
lua_pushnumber( L, g );
|
||||
lua_rawseti( L, iTable, 2 );
|
||||
lua_pushnumber( L, b );
|
||||
lua_rawseti( L, iTable, 3 );
|
||||
lua_pushnumber( L, a );
|
||||
lua_rawseti( L, iTable, 4 );
|
||||
}
|
||||
|
||||
void RageColor::FromStack( lua_State *L, int iPos )
|
||||
{
|
||||
lua_rawgeti( L, iPos, 1 );
|
||||
r = lua_tonumber( L, -1 );
|
||||
lua_rawgeti( L, iPos, 2 );
|
||||
g = lua_tonumber( L, -1 );
|
||||
lua_rawgeti( L, iPos, 3 );
|
||||
b = lua_tonumber( L, -1 );
|
||||
lua_rawgeti( L, iPos, 4 );
|
||||
a = lua_tonumber( L, -1 );
|
||||
lua_pop( L, 4 );
|
||||
}
|
||||
|
||||
/*
|
||||
* Copyright (c) 2006 Glenn Maynard
|
||||
* All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, and/or sell copies of the Software, and to permit persons to
|
||||
* whom the Software is furnished to do so, provided that the above
|
||||
* copyright notice(s) and this permission notice appear in all copies of
|
||||
* the Software and that both the above copyright notice(s) and this
|
||||
* permission notice appear in supporting documentation.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
||||
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
||||
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
||||
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
@@ -8,6 +8,7 @@ enum CullMode { CULL_BACK, CULL_FRONT, CULL_NONE };
|
||||
enum ZTestMode { ZTEST_OFF, ZTEST_WRITE_ON_PASS, ZTEST_WRITE_ON_FAIL };
|
||||
enum PolygonMode { POLYGON_FILL, POLYGON_LINE };
|
||||
|
||||
struct lua_State;
|
||||
|
||||
struct RageVector2
|
||||
{
|
||||
@@ -154,6 +155,10 @@ public:
|
||||
r=1; b=1; g=1; a=1;
|
||||
return false;
|
||||
}
|
||||
|
||||
void PushTable( lua_State *L ) const;
|
||||
void FromStack( lua_State *L, int iPos );
|
||||
|
||||
float r, g, b, a;
|
||||
} SM_ALIGN(16);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user