diff options
Diffstat (limited to 'Runtime')
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBind.h (renamed from Runtime/LuaBind/LuaBind.h) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindCFunctions.cpp (renamed from Runtime/LuaBind/LuaBindCFunctions.cpp) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindCFunctions.h (renamed from Runtime/LuaBind/LuaBindCFunctions.h) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindClass.cpp (renamed from Runtime/LuaBind/LuaBindClass.cpp) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindClass.hpp (renamed from Runtime/LuaBind/LuaBindClass.hpp) | 3 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindClass.inc (renamed from Runtime/LuaBind/LuaBindClass.inc) | 53 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindConfig.h (renamed from Runtime/LuaBind/LuaBindConfig.h) | 7 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindEnum.cpp (renamed from Runtime/LuaBind/LuaBindEnum.cpp) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindEnum.h (renamed from Runtime/LuaBind/LuaBindEnum.h) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindGlobalState.h (renamed from Runtime/LuaBind/LuaBindGlobalState.h) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindInternal.h (renamed from Runtime/LuaBind/LuaBindInternal.h) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindMemberRef.cpp (renamed from Runtime/LuaBind/LuaBindMemberRef.cpp) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindMemberRef.h (renamed from Runtime/LuaBind/LuaBindMemberRef.h) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindRef.cpp (renamed from Runtime/LuaBind/LuaBindRef.cpp) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindRef.h (renamed from Runtime/LuaBind/LuaBindRef.h) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindRefTable.cpp (renamed from Runtime/LuaBind/LuaBindRefTable.cpp) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindRefTable.h (renamed from Runtime/LuaBind/LuaBindRefTable.h) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindState.cpp (renamed from Runtime/LuaBind/LuaBindState.cpp) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindState.h (renamed from Runtime/LuaBind/LuaBindState.h) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindState.inc (renamed from Runtime/LuaBind/LuaBindState.inc) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindUtility.h (renamed from Runtime/LuaBind/LuaBindUtility.h) | 3 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindVM.cpp (renamed from Runtime/LuaBind/LuaBindVM.cpp) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindVM.h (renamed from Runtime/LuaBind/LuaBindVM.h) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindWatchDog.cpp (renamed from Runtime/LuaBind/LuaBindWatchDog.cpp) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindWatchDog.h (renamed from Runtime/LuaBind/LuaBindWatchDog.h) | 0 | ||||
-rw-r--r-- | Runtime/Lua/LuaHelper.cpp | 23 | ||||
-rw-r--r-- | Runtime/Lua/LuaHelper.h | 10 | ||||
-rw-r--r-- | Runtime/Scripting/GL/GL.bind.cpp | 2 |
28 files changed, 66 insertions, 35 deletions
diff --git a/Runtime/LuaBind/LuaBind.h b/Runtime/Lua/LuaBind/LuaBind.h index 1494b5c..1494b5c 100644 --- a/Runtime/LuaBind/LuaBind.h +++ b/Runtime/Lua/LuaBind/LuaBind.h diff --git a/Runtime/LuaBind/LuaBindCFunctions.cpp b/Runtime/Lua/LuaBind/LuaBindCFunctions.cpp index ca662a3..ca662a3 100644 --- a/Runtime/LuaBind/LuaBindCFunctions.cpp +++ b/Runtime/Lua/LuaBind/LuaBindCFunctions.cpp diff --git a/Runtime/LuaBind/LuaBindCFunctions.h b/Runtime/Lua/LuaBind/LuaBindCFunctions.h index f0f07dd..f0f07dd 100644 --- a/Runtime/LuaBind/LuaBindCFunctions.h +++ b/Runtime/Lua/LuaBind/LuaBindCFunctions.h diff --git a/Runtime/LuaBind/LuaBindClass.cpp b/Runtime/Lua/LuaBind/LuaBindClass.cpp index 7fd603c..7fd603c 100644 --- a/Runtime/LuaBind/LuaBindClass.cpp +++ b/Runtime/Lua/LuaBind/LuaBindClass.cpp diff --git a/Runtime/LuaBind/LuaBindClass.hpp b/Runtime/Lua/LuaBind/LuaBindClass.hpp index c27af4e..2bf1451 100644 --- a/Runtime/LuaBind/LuaBindClass.hpp +++ b/Runtime/Lua/LuaBind/LuaBindClass.hpp @@ -139,9 +139,10 @@ namespace LuaBind // 工厂类相关 static int __gc (lua_State*); static int _GetRefTable (lua_State*); - static int _New (lua_State*); #if LUA_BIND_ENABLE_NATIVE_EXTEND + static int _New(lua_State*); + static int _ExtendFactory (lua_State*); static int _ExtendSingleton (lua_State*); #endif diff --git a/Runtime/LuaBind/LuaBindClass.inc b/Runtime/Lua/LuaBind/LuaBindClass.inc index 1d05f98..05bd9c7 100644 --- a/Runtime/LuaBind/LuaBindClass.inc +++ b/Runtime/Lua/LuaBind/LuaBindClass.inc @@ -238,7 +238,6 @@ namespace LuaBind return false; } - // // 创建userdata,并以此添加ref table,member table和class table。 // ref table 是kv强引用table,保存对其他userdata的引用计数(通过userdata作为key, // 计数为value),以及成员引用 @@ -246,7 +245,6 @@ namespace LuaBind // class table 所有本类型的实例共有的函数表 // // BindToLua只会在第一次注册给Lua虚拟机时调用。 - // template<class TYPE, class BASE> void NativeClass<TYPE, BASE>::BindToLua(State& state) { @@ -254,11 +252,9 @@ namespace LuaBind assert(!TYPE::IsClassSingleton()); assert(!mUserdata); - // // 创建userdata并留在栈顶,注意地址要转换为TYPE*,直接用this可能会导致多重继承的类丧失多态。 // 如果直接传this进去,在多重继承情况下,是拿不到另一头的虚函数表的。所以这里需要将this // 转换为整个对象的低地址,这样可以拿到另一个基类的虚函数表,通过另一个基类实现多态。 - // TYPE* p = static_cast<TYPE*>(this); state.PushPtrUserdata(p); @@ -433,10 +429,8 @@ namespace LuaBind } #if LUA_BIND_ENABLE_NATIVE_EXTEND - // // 派生出子类,在lua里对派生类的成员和行为进行重新设计,但是保证了userdata的统一。Native class的派生提供__init支持,在 // native实体创建后可以使用__init进行初始化,派生类拥有和基类一样的New参数列表,且native对象是一样的类型。 - // template<class TYPE, class BASE> int NativeClass<TYPE, BASE>::_ExtendFactory(lua_State* L) { @@ -534,29 +528,6 @@ namespace LuaBind return 1; } -#endif /*LUA_BIND_ENABLE_NATIVE_EXTEND*/ - - template<class TYPE, class BASE> - int NativeClass<TYPE, BASE>::_GetClass(lua_State* L) - { - LUA_BIND_STATE(L); - if (!mClassTable) - lua_pushnil(L); - else - mClassTable.PushRef(state); - return 1; - } - - template<class TYPE, class BASE> - int NativeClass<TYPE, BASE>::_GetRefTable(lua_State* L) - { - LUA_BIND_STATE(L); - TYPE* self = state.GetUserdata<TYPE>(1); - bool success = self->PushRefTable(state); - if (!success) - lua_pushnil(L); - return 1; - } template<class TYPE, class BASE> int NativeClass<TYPE, BASE>::_New(lua_State* L) @@ -631,6 +602,30 @@ namespace LuaBind return 0; } +#endif /*LUA_BIND_ENABLE_NATIVE_EXTEND*/ + + template<class TYPE, class BASE> + int NativeClass<TYPE, BASE>::_GetClass(lua_State* L) + { + LUA_BIND_STATE(L); + if (!mClassTable) + lua_pushnil(L); + else + mClassTable.PushRef(state); + return 1; + } + + template<class TYPE, class BASE> + int NativeClass<TYPE, BASE>::_GetRefTable(lua_State* L) + { + LUA_BIND_STATE(L); + TYPE* self = state.GetUserdata<TYPE>(1); + bool success = self->PushRefTable(state); + if (!success) + lua_pushnil(L); + return 1; + } + template<class TYPE, class BASE> StrongRef NativeClass<TYPE, BASE>::mClassTable; // class table template<class TYPE, class BASE> StrongRef NativeClass<TYPE, BASE>::mSingletonRefTable; // 单例 diff --git a/Runtime/LuaBind/LuaBindConfig.h b/Runtime/Lua/LuaBind/LuaBindConfig.h index 72709bd..ded072e 100644 --- a/Runtime/LuaBind/LuaBindConfig.h +++ b/Runtime/Lua/LuaBind/LuaBindConfig.h @@ -50,10 +50,9 @@ namespace LuaBind #define LUA_BIND_API LUA_BIND_LIBRARY_EXPORT #endif -#define LUA_BIND_ENABLE_NATIVE_EXTEND 0 - -#define LUA_BIND_ENABLE_PLAIN_CLASS 0 -#define LUA_BIND_ENABLE_PLAIN_ENUM 0 +#define LUA_BIND_ENABLE_NATIVE_EXTEND 0 +#define LUA_BIND_ENABLE_PLAIN_CLASS 0 +#define LUA_BIND_ENABLE_PLAIN_ENUM 0 #define LUA_BIND_PROFILER 1 diff --git a/Runtime/LuaBind/LuaBindEnum.cpp b/Runtime/Lua/LuaBind/LuaBindEnum.cpp index 63e2567..63e2567 100644 --- a/Runtime/LuaBind/LuaBindEnum.cpp +++ b/Runtime/Lua/LuaBind/LuaBindEnum.cpp diff --git a/Runtime/LuaBind/LuaBindEnum.h b/Runtime/Lua/LuaBind/LuaBindEnum.h index 122e845..122e845 100644 --- a/Runtime/LuaBind/LuaBindEnum.h +++ b/Runtime/Lua/LuaBind/LuaBindEnum.h diff --git a/Runtime/LuaBind/LuaBindGlobalState.h b/Runtime/Lua/LuaBind/LuaBindGlobalState.h index fa3cc4f..fa3cc4f 100644 --- a/Runtime/LuaBind/LuaBindGlobalState.h +++ b/Runtime/Lua/LuaBind/LuaBindGlobalState.h diff --git a/Runtime/LuaBind/LuaBindInternal.h b/Runtime/Lua/LuaBind/LuaBindInternal.h index 1d4a226..1d4a226 100644 --- a/Runtime/LuaBind/LuaBindInternal.h +++ b/Runtime/Lua/LuaBind/LuaBindInternal.h diff --git a/Runtime/LuaBind/LuaBindMemberRef.cpp b/Runtime/Lua/LuaBind/LuaBindMemberRef.cpp index e680cce..e680cce 100644 --- a/Runtime/LuaBind/LuaBindMemberRef.cpp +++ b/Runtime/Lua/LuaBind/LuaBindMemberRef.cpp diff --git a/Runtime/LuaBind/LuaBindMemberRef.h b/Runtime/Lua/LuaBind/LuaBindMemberRef.h index 045d6ef..045d6ef 100644 --- a/Runtime/LuaBind/LuaBindMemberRef.h +++ b/Runtime/Lua/LuaBind/LuaBindMemberRef.h diff --git a/Runtime/LuaBind/LuaBindRef.cpp b/Runtime/Lua/LuaBind/LuaBindRef.cpp index 00a65d0..00a65d0 100644 --- a/Runtime/LuaBind/LuaBindRef.cpp +++ b/Runtime/Lua/LuaBind/LuaBindRef.cpp diff --git a/Runtime/LuaBind/LuaBindRef.h b/Runtime/Lua/LuaBind/LuaBindRef.h index 93b30be..93b30be 100644 --- a/Runtime/LuaBind/LuaBindRef.h +++ b/Runtime/Lua/LuaBind/LuaBindRef.h diff --git a/Runtime/LuaBind/LuaBindRefTable.cpp b/Runtime/Lua/LuaBind/LuaBindRefTable.cpp index 39ef9ab..39ef9ab 100644 --- a/Runtime/LuaBind/LuaBindRefTable.cpp +++ b/Runtime/Lua/LuaBind/LuaBindRefTable.cpp diff --git a/Runtime/LuaBind/LuaBindRefTable.h b/Runtime/Lua/LuaBind/LuaBindRefTable.h index 0d4c2d4..0d4c2d4 100644 --- a/Runtime/LuaBind/LuaBindRefTable.h +++ b/Runtime/Lua/LuaBind/LuaBindRefTable.h diff --git a/Runtime/LuaBind/LuaBindState.cpp b/Runtime/Lua/LuaBind/LuaBindState.cpp index 4ee87f4..4ee87f4 100644 --- a/Runtime/LuaBind/LuaBindState.cpp +++ b/Runtime/Lua/LuaBind/LuaBindState.cpp diff --git a/Runtime/LuaBind/LuaBindState.h b/Runtime/Lua/LuaBind/LuaBindState.h index 776b23d..776b23d 100644 --- a/Runtime/LuaBind/LuaBindState.h +++ b/Runtime/Lua/LuaBind/LuaBindState.h diff --git a/Runtime/LuaBind/LuaBindState.inc b/Runtime/Lua/LuaBind/LuaBindState.inc index 4e7090d..4e7090d 100644 --- a/Runtime/LuaBind/LuaBindState.inc +++ b/Runtime/Lua/LuaBind/LuaBindState.inc diff --git a/Runtime/LuaBind/LuaBindUtility.h b/Runtime/Lua/LuaBind/LuaBindUtility.h index edc5b18..ffc5099 100644 --- a/Runtime/LuaBind/LuaBindUtility.h +++ b/Runtime/Lua/LuaBind/LuaBindUtility.h @@ -59,6 +59,9 @@ LUA_BIND_STATE(L); \ T* self = state.GetUserdata<T>(1); +#define LUA_BIND_CHECK(L, params)\ + if(!state.CheckParams(1, params)) return 0 + #define LUA_BIND_INHERIT(state, type) type::RegisterClass(state) #define luaxport private diff --git a/Runtime/LuaBind/LuaBindVM.cpp b/Runtime/Lua/LuaBind/LuaBindVM.cpp index 268a5ed..268a5ed 100644 --- a/Runtime/LuaBind/LuaBindVM.cpp +++ b/Runtime/Lua/LuaBind/LuaBindVM.cpp diff --git a/Runtime/LuaBind/LuaBindVM.h b/Runtime/Lua/LuaBind/LuaBindVM.h index 3bfe899..3bfe899 100644 --- a/Runtime/LuaBind/LuaBindVM.h +++ b/Runtime/Lua/LuaBind/LuaBindVM.h diff --git a/Runtime/LuaBind/LuaBindWatchDog.cpp b/Runtime/Lua/LuaBind/LuaBindWatchDog.cpp index e69de29..e69de29 100644 --- a/Runtime/LuaBind/LuaBindWatchDog.cpp +++ b/Runtime/Lua/LuaBind/LuaBindWatchDog.cpp diff --git a/Runtime/LuaBind/LuaBindWatchDog.h b/Runtime/Lua/LuaBind/LuaBindWatchDog.h index 794faa9..794faa9 100644 --- a/Runtime/LuaBind/LuaBindWatchDog.h +++ b/Runtime/Lua/LuaBind/LuaBindWatchDog.h diff --git a/Runtime/Lua/LuaHelper.cpp b/Runtime/Lua/LuaHelper.cpp new file mode 100644 index 0000000..289f0f6 --- /dev/null +++ b/Runtime/Lua/LuaHelper.cpp @@ -0,0 +1,23 @@ +#include "LuaHelper.h"
+
+using namespace LuaBind;
+
+template <> +Rectf State::GetValue < Rectf >(int idx, const Rectf value)
+{
+ Rectf rect;
+ rect.x = GetField<float>(idx, 1, 0); + rect.y = GetField<float>(idx, 2, 0); + rect.width = GetField<float>(idx, 3, 0); + rect.height = GetField<float>(idx, 4, 0); + return rect;
+}
+
+template <> +Vector2f State::GetValue < Vector2f >(int idx, const Vector2f value)
+{
+ Vector2f v2; + v2.x = GetField<float>(idx, 1, 0); + v2.y = GetField<float>(idx, 2, 0); + return v2;
+}
diff --git a/Runtime/Lua/LuaHelper.h b/Runtime/Lua/LuaHelper.h new file mode 100644 index 0000000..5e9bf90 --- /dev/null +++ b/Runtime/Lua/LuaHelper.h @@ -0,0 +1,10 @@ +#pragma once
+#include "Runtime/Math/Rect.h"
+#include "Runtime/Math/Vector2.h"
+#include "./LuaBind/LuaBind.h"
+
+class LuaHelper
+{
+public:
+
+};
diff --git a/Runtime/Scripting/GL/GL.bind.cpp b/Runtime/Scripting/GL/GL.bind.cpp index 57dba09..bed55ca 100644 --- a/Runtime/Scripting/GL/GL.bind.cpp +++ b/Runtime/Scripting/GL/GL.bind.cpp @@ -1,5 +1,5 @@ #include "Runtime/Graphics/OpenGL.h" -#include "Runtime/LuaBind/LuaBind.h" +#include "Runtime/Lua/LuaBind/LuaBind.h" // GameLab.Engine.GL void luaopen_GameLab_Engine_GL(lua_State* L) |