summaryrefslogtreecommitdiff
path: root/Runtime/Lua/LuaBind/LuaBindState.h
diff options
context:
space:
mode:
Diffstat (limited to 'Runtime/Lua/LuaBind/LuaBindState.h')
-rw-r--r--Runtime/Lua/LuaBind/LuaBindState.h31
1 files changed, 7 insertions, 24 deletions
diff --git a/Runtime/Lua/LuaBind/LuaBindState.h b/Runtime/Lua/LuaBind/LuaBindState.h
index e5b8f6c..aa77c26 100644
--- a/Runtime/Lua/LuaBind/LuaBindState.h
+++ b/Runtime/Lua/LuaBind/LuaBindState.h
@@ -17,7 +17,7 @@ namespace LuaBind
typedef void (*ErrorHandler) (cc8 * msg);
typedef void(*OnRegisterClassHandler)(State&, int clsIdx, std::string clsName, std::string pkgName);
- extern OnRegisterClassHandler onRegisterFactoryClass;
+ extern OnRegisterClassHandler onRegisterNativeClass;
extern std::string g_NameSpace;
// 对lua_State的代理,除了保存一个lua_State的引用不保存其他内容。一个实例的metatable如下:
@@ -150,7 +150,7 @@ namespace LuaBind
// 注册方法
// 注册工厂,适用于普通类,有New方法
- template<class TYPE> void RegisterFactory();
+ template<class TYPE> void RegisterNativeClass();
// 注册枚举
void RegisterEnum(cc8* name, Enum* enums);
@@ -169,16 +169,6 @@ namespace LuaBind
// 根据luaL_Reg建立lib table,并在_G和package.loaded建立对libname的索引,指向lib table。
void RegisterLib(cc8* libname, const luaL_Reg* l);
-#if LUA_BIND_ENABLE_PLAIN_CLASS
- // 注册纯lua类的注册函数,用来创建纯lua类。
- void RegisterPlainClassRegistry(cc8* name);
-#endif
-
-#if LUA_BIND_ENABLE_PLAIN_ENUM
- // 注册纯lua的枚举,以防止修改枚举值。
- void RegisterPlainEnumRegistry(cc8* name);
-#endif
-
protected:
friend class VM;
@@ -267,9 +257,9 @@ namespace LuaBind
// 注册工厂,注册class table,以type name为键设置在名称空间上。在注册阶段不会设置元表,等到New方法调用的时候才会。
template<class TYPE>
- void State::RegisterFactory()
+ void State::RegisterNativeClass()
{
- cc8* type = TYPE::GetFactoryName();
+ cc8* type = TYPE::GetNativeClassName();
lua_State* L = mState;
State& state = *this;
@@ -281,12 +271,12 @@ namespace LuaBind
lua_newtable(L);
int clsIdx = lua_gettop(L);
TYPE::RegisterClassShared(state);
- TYPE::RegisterFactoryClass(state);
+ TYPE::RegisterNativeClass(state);
TYPE::RegisterClass(state);
// 自定义注册内容
- if (onRegisterFactoryClass)
- onRegisterFactoryClass(state, clsIdx, type, g_NameSpace);
+ if (onRegisterNativeClass)
+ onRegisterNativeClass(state, clsIdx, type, g_NameSpace);
// 清理栈
lua_settop(state, clsIdx);
@@ -300,13 +290,6 @@ namespace LuaBind
//_assertmethod(-1, "New");
#undef _assertmethod
-#if LUA_BIND_ENABLE_NATIVE_EXTEND
- // .Extend()
- lua_pushvalue(state, -1); // class table
- lua_pushcclosure(state, TYPE::_ExtendFactory, 1);
- lua_setfield(state, -2, "Extend");
-#endif
-
// class["__index"] = class
lua_pushvalue(state, -1); // class table
lua_setfield(state, -2, "__index");