summaryrefslogtreecommitdiff
path: root/Runner/Scripting/luax_utility.h
diff options
context:
space:
mode:
Diffstat (limited to 'Runner/Scripting/luax_utility.h')
-rw-r--r--Runner/Scripting/luax_utility.h66
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