diff options
Diffstat (limited to 'Runtime/Scripting/LuaBindUtility.h')
-rw-r--r-- | Runtime/Scripting/LuaBindUtility.h | 46 |
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 |