summaryrefslogtreecommitdiff
path: root/Runtime/Scripting/LuaBindUtility.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-11-15 11:56:49 +0800
committerchai <chaifix@163.com>2020-11-15 11:56:49 +0800
commit7270cd95294d53180641b05784258df1e29f90d2 (patch)
tree171554d5caed0adea988c785d3714d08595ba1f3 /Runtime/Scripting/LuaBindUtility.h
parentd2e4b2839bc7ce874370ff4c52dcfdadf666ff52 (diff)
*lua BindToLua
Diffstat (limited to 'Runtime/Scripting/LuaBindUtility.h')
-rw-r--r--Runtime/Scripting/LuaBindUtility.h46
1 files changed, 23 insertions, 23 deletions
diff --git a/Runtime/Scripting/LuaBindUtility.h b/Runtime/Scripting/LuaBindUtility.h
index 0643315..4d3d542 100644
--- a/Runtime/Scripting/LuaBindUtility.h
+++ b/Runtime/Scripting/LuaBindUtility.h
@@ -3,31 +3,31 @@
// 导出native接口
-/// RegisterLuaBindClass 注册类的方法和成员,比如枚举、常量等到class table LuaBindGetFactoryName 获得工厂的类名,
+/// RegisterClass 注册类的方法和成员,比如枚举、常量等到class table GetFactoryName 获得工厂的类名,
/// 同时用来避免注册时错误注册为了singleton,通过编译时报错避免
#define LUA_BIND_DECL_FACTORY(type, ...) \
- friend class LuaBind::LuaBindState; \
- friend class LuaBind::LuaBindNativeClass<type,##__VA_ARGS__>; \
- static void RegisterLuaBindClass(LuaBind::LuaBindState&); \
- static void RegisterLuaBindPostprocess(LuaBind::LuaBindState&); \
- static const char* GetLuaBindFactoryName() { return #type; };\
- static const char* GetLuaBindClassName() { return #type; };\
- static bool IsLuaBindClassSingleton() { return false; }
+ friend class ::State; \
+ friend class ::NativeClass<type,##__VA_ARGS__>; \
+ static void RegisterClass(::State&); \
+ static void RegisterPostprocess(::State&); \
+ static const char* GetFactoryName() { return #type; };\
+ static const char* GetClassName() { return #type; };\
+ static bool IsClassSingleton() { return false; }
/// 作为基类的抽象工厂类可以使用此宏,注册一个入口,在派生类的注册函数中调用,注册基类的这些方法。
#define LUA_BIND_DECL_ABSTRACT_FACTORY() \
- static void RegisterLuaBindClass(LuaBind::LuaBindState&);\
- static void RegisterLuaBindPostprocess(LuaBind::LuaBindState&)
+ static void RegisterClass(::State&);\
+ static void RegisterPostprocess(::State&)
-/// RegisterLuaBindClass 注册类的方法和成员,比如枚举、常量等到class table LuaBindGetSingletonName 获得单例的类名
+/// RegisterClass 注册类的方法和成员,比如枚举、常量等到class table GetSingletonName 获得单例的类名
#define LUA_BIND_DECL_SINGLETON(type, ...) \
- friend class LuaBind::LuaBindState; \
- friend class LuaBind::LuaBindNativeClass<type,##__VA_ARGS__>; \
- static void RegisterLuaBindClass(LuaBind::LuaBindState&); \
- static void RegisterLuaBindPostprocess(LuaBind::LuaBindState&); \
- static const char* GetLuaBindSingletonName() { return #type; }; \
- static const char* GetLuaBindClassName() { return #type; }; \
- static bool IsLuaBindClassSingleton() { return true; }
+ friend class ::State; \
+ friend class ::NativeClass<type,##__VA_ARGS__>; \
+ static void RegisterClass(::State&); \
+ static void RegisterPostprocess(::State&); \
+ static const char* GetSingletonName() { return #type; }; \
+ static const char* GetClassName() { return #type; }; \
+ static bool IsClassSingleton() { return true; }
#define LUA_BIND_DECL_METHOD(mtd) static int mtd(lua_State* L)
@@ -37,13 +37,13 @@
#define LUA_BIND_IMPL_METHOD(type, f) int type::f(lua_State* L)
/// 由应用程序实现的两个接口。上下文里有一个state。
-#define LUA_BIND_REGISTRY(type) void type::RegisterLuaBindClass(LuaBind::LuaBindState& state)
-#define LUA_BIND_POSTPROCESS(type) void type::RegisterLuaBindPostprocess(LuaBind::LuaBindState& state)
+#define LUA_BIND_REGISTRY(type) void type::RegisterClass(::State& state)
+#define LUA_BIND_POSTPROCESS(type) void type::RegisterPostprocess(::State& state)
/// 用来注册的宏。之前这里忘了用可变宏,导致没有luaclastable ref没有注册对。
#define LUA_BIND_REGISTER_FACTORY(state, param) state.RegisterFactory<param>()
#define LUA_BIND_REGISTER_SINGLETON(state, param) state.RegisterSingleton<param>()
-#define LUA_BIND_REGISTER_ABSTRACT_FACTORY(state, type) type::RegisterLuaBindPostprocess(state)
+#define LUA_BIND_REGISTER_ABSTRACT_FACTORY(state, type) type::RegisterPostprocess(state)
#define LUA_BIND_REGISTER_METHODS(state, ...) \
do{ \
luaL_Reg __m[] = {__VA_ARGS__,{0, 0}}; \
@@ -51,7 +51,7 @@
}while(0)
#define LUA_BIND_REGISTER_ENUM(state, name, ...) \
do{ \
- LuaBind::LuaBindEnum __e[] = {__VA_ARGS__,{0, 0}}; \
+ ::Enum __e[] = {__VA_ARGS__,{0, 0}}; \
state.RegisterEnum(name, __e); \
}while(0)
@@ -59,7 +59,7 @@
LUA_BIND_STATE(L); \
T* self = state.GetUserdata<T>(1);
-#define LUA_BIND_INHERIT(state, type) type::RegisterLuaBindClass(state)
+#define LUA_BIND_INHERIT(state, type) type::RegisterClass(state)
#define luaxport private