diff options
author | chai <chaifix@163.com> | 2021-10-17 16:01:30 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-10-17 16:01:30 +0800 |
commit | 6e73ca6ada8a41692809dae5db89c8db0675ce1e (patch) | |
tree | 3ca6f06b29b3e2c183750ddcff8d7a09d0785e6b /Runner/Scripting/luax_utility.h | |
parent | e13f699ee5f575198552d94ada1167305c82bb2f (diff) |
-Runner
Diffstat (limited to 'Runner/Scripting/luax_utility.h')
-rw-r--r-- | Runner/Scripting/luax_utility.h | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/Runner/Scripting/luax_utility.h b/Runner/Scripting/luax_utility.h deleted file mode 100644 index 79601e0..0000000 --- a/Runner/Scripting/luax_utility.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef __LUAX_UTILITY_H__ -#define __LUAX_UTILITY_H__ - -// 导出native接口 - -/// RegisterLuaxClass 注册类的方法和成员,比如枚举、常量等到class table LuaxGetFactoryName 获得工厂的类名, -/// 同时用来避免注册时错误注册为了singleton,通过编译时报错避免 -#define LUAX_DECL_FACTORY(type, ...) \ - friend class Luax::LuaxState; \ - friend class Luax::LuaxNativeClass<type,##__VA_ARGS__>; \ - static void RegisterLuaxClass(Luax::LuaxState&); \ - static void RegisterLuaxPostprocess(Luax::LuaxState&); \ - static const char* GetLuaxFactoryName() { return #type; };\ - static const char* GetLuaxClassName() { return #type; };\ - static bool IsLuaxClassSingleton() { return false; } - -/// 作为基类的抽象工厂类可以使用此宏,注册一个入口,在派生类的注册函数中调用,注册基类的这些方法。 -#define LUAX_DECL_ABSTRACT_FACTORY() \ - static void RegisterLuaxClass(Luax::LuaxState&);\ - static void RegisterLuaxPostprocess(Luax::LuaxState&) - -/// RegisterLuaxClass 注册类的方法和成员,比如枚举、常量等到class table LuaxGetSingletonName 获得单例的类名 -#define LUAX_DECL_SINGLETON(type, ...) \ - friend class Luax::LuaxState; \ - friend class Luax::LuaxNativeClass<type,##__VA_ARGS__>; \ - static void RegisterLuaxClass(Luax::LuaxState&); \ - static void RegisterLuaxPostprocess(Luax::LuaxState&); \ - static const char* GetLuaxSingletonName() { return #type; }; \ - static const char* GetLuaxClassName() { return #type; }; \ - static bool IsLuaxClassSingleton() { return true; } - -#define LUAX_DECL_METHOD(mtd) static int mtd(lua_State* L) - -#define LUAX_DECL_ENUM(e, under_line_index) - -/// 标明方法实现的宏。上下文里有一个L。 -#define LUAX_IMPL_METHOD(type, f) int type::f(lua_State* L) - -/// 由应用程序实现的两个接口。上下文里有一个state。 -#define LUAX_REGISTRY(type) void type::RegisterLuaxClass(Luax::LuaxState& state) -#define LUAX_POSTPROCESS(type) void type::RegisterLuaxPostprocess(Luax::LuaxState& state) - -/// 用来注册的宏。之前这里忘了用可变宏,导致没有luaclastable ref没有注册对。 -#define LUAX_REGISTER_FACTORY(state, param) state.RegisterFactory<param>() -#define LUAX_REGISTER_SINGLETON(state, param) state.RegisterSingleton<param>() -#define LUAX_REGISTER_ABSTRACT_FACTORY(state, type) type::RegisterLuaxPostprocess(state) -#define LUAX_REGISTER_METHODS(state, ...) \ - do{ \ - luaL_Reg __m[] = {__VA_ARGS__,{0, 0}}; \ - state.RegisterMethods(__m); \ - }while(0) -#define LUAX_REGISTER_ENUM(state, name, ...) \ - do{ \ - Luax::LuaxEnum __e[] = {__VA_ARGS__,{0, 0}}; \ - state.RegisterEnum(name, __e); \ - }while(0) - -#define LUAX_PREPARE(L, T) \ - LUAX_STATE(L); \ - T* self = state.GetUserdata<T>(1); - -#define LUAX_INHERIT(state, type) type::RegisterLuaxClass(state) - -#define luaxport private - -#endif
\ No newline at end of file |