Changeset 183
- Timestamp:
- 07/30/13 05:29:32 (12 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nv/lua/lua_area.hh
r176 r183 11 11 #include <nv/lua/lua_glm.hh> 12 12 #include <nv/lib/lua.hh> 13 #include <nv/lua/lua_values.hh> 13 14 14 15 void nlua_register_area( lua_State* L ); … … 24 25 inline void nlua_push_coord( lua_State* L, const nv::ivec2& v ) { return nlua_push_vec<nv::ivec2>( L, v ); } 25 26 27 namespace nv 28 { 29 namespace lua 30 { 31 32 template<> 33 struct pass_traits< nv::rectangle > 34 { 35 static void push( lua_State *L, const nv::rectangle& p ) { nlua_push_area( L, p ); } 36 static void pop( lua_State *L, nv::rectangle& p ) { p = nlua_to_area( L, -1 ); lua_pop( L, 1 ); } 37 }; 38 } 39 40 } 41 26 42 #endif // NV_LUA_AREA_HH -
trunk/nv/lua/lua_glm.hh
r121 r183 11 11 #include <nv/math.hh> 12 12 #include <nv/lib/lua.hh> 13 #include <nv/lua/lua_values.hh> 13 14 14 15 void nlua_register_glm( lua_State* L ); … … 48 49 template<> inline const char* nlua_metatable_name< nv::vec4 >() { return "vec4"; } 49 50 51 namespace nv 52 { 53 namespace lua 54 { 55 56 template< typename T > 57 struct pass_traits< glm::detail::tvec2<T> > 58 { 59 typedef glm::detail::tvec2<T> value_type; 60 static void push( lua_State *L, const value_type& p ) { nlua_push_vec< value_type >( L, p ); } 61 static void pop( lua_State *L, value_type& p ) { p = nlua_to_vec< value_type >( L, -1 ); lua_pop( L, 1 ); } 62 }; 63 64 template< typename T > 65 struct pass_traits< glm::detail::tvec3<T> > 66 { 67 typedef glm::detail::tvec3<T> value_type; 68 static void push( lua_State *L, const value_type& p ) { nlua_push_vec< value_type >( L, p ); } 69 static void pop( lua_State *L, value_type& p ) { p = nlua_to_vec< value_type >( L, -1 ); lua_pop( L, 1 ); } 70 }; 71 72 template< typename T > 73 struct pass_traits< glm::detail::tvec4<T> > 74 { 75 typedef glm::detail::tvec4<T> value_type; 76 static void push( lua_State *L, const value_type& p ) { nlua_push_vec< value_type >( L, p ); } 77 static void pop( lua_State *L, value_type& p ) { p = nlua_to_vec< value_type >( L, -1 ); lua_pop( L, 1 ); } 78 }; 79 } 80 81 } 82 83 50 84 #endif // NV_LUA_GLM_HH -
trunk/nv/lua/lua_values.hh
r182 r183 17 17 namespace lua 18 18 { 19 template < typename T >20 struct pass_traits21 {22 };23 24 25 19 struct passer 26 20 { … … 28 22 }; 29 23 30 template < typename T > 31 struct returner 24 struct returner_base 32 25 { 33 26 virtual void pop( lua_State *L ) = 0; 27 }; 28 29 template < typename T > 30 struct returner : public returner_base 31 { 34 32 operator T() { return value; } 35 33 operator const T() const { return value; } 36 34 protected: 37 35 T value; 36 }; 37 38 template < typename T > 39 struct pass_traits 40 { 41 static void push( lua_State *L, const T& p ) { p.push( L ); } 42 static void pop( lua_State *L, T& p ) { p.pop( L ); } 38 43 }; 39 44 … … 47 52 void push_value( lua_State *L, object* o ); 48 53 void push_value( lua_State *L, void* p ); 49 void push_value( lua_State *L, const passer& p ); 54 template < typename T > 55 void push_value( lua_State *L, const T& p ) 56 { 57 pass_traits<T>::push( L, p ); 58 } 50 59 51 60 template < typename T1 > … … 67 76 void pop_value( lua_State *L, void*& p ); 68 77 template < typename T > 69 void pop_value( lua_State *L, T& p ) { p.pop(L); } 70 78 void pop_value( lua_State *L, T& p ) 79 { 80 pass_traits<T>::pop( L, p ); 81 } 71 82 } 72 83 -
trunk/src/gfx/keyframed_mesh.cc
r161 r183 105 105 if ( m_looping ) 106 106 { 107 uint32 left = m_time - f_max;107 uint32 left = m_time - static_cast< uint32 >( f_max ); 108 108 m_time = 0; 109 109 update( left ); -
trunk/src/lua/lua_values.cc
r182 r183 52 52 } 53 53 54 void nv::lua::detail::push_value( lua_State *L, const passer& p )55 {56 p.push(L);57 }58 59 54 void nv::lua::detail::pop_value( lua_State *L, long& n ) 60 55 {
Note: See TracChangeset
for help on using the changeset viewer.