summaryrefslogtreecommitdiff
path: root/Runtime
diff options
context:
space:
mode:
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.cpp23
-rw-r--r--Runtime/Lua/LuaHelper.h10
-rw-r--r--Runtime/Scripting/GL/GL.bind.cpp2
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)