diff options
Diffstat (limited to 'source/libs/asura-lib-utils/scripting/lua_env.h')
-rw-r--r-- | source/libs/asura-lib-utils/scripting/lua_env.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/source/libs/asura-lib-utils/scripting/lua_env.h b/source/libs/asura-lib-utils/scripting/lua_env.h new file mode 100644 index 0000000..a467479 --- /dev/null +++ b/source/libs/asura-lib-utils/scripting/lua_env.h @@ -0,0 +1,56 @@ +#ifndef __ASURA_LUA_ENV_H__ +#define __ASURA_LUA_ENV_H__ + +extern "C" +{ +#include <Lua51/lua.h> +#include <Lua51/lauxlib.h> +} +#include <Luax/luax.h> + +#include "../singleton.hpp" + +namespace AsuraEngine +{ + namespace Scripting + { + + /// + /// ͨӿڷlua state + /// + class LuaEnv ASURA_FINAL : public Singleton<LuaEnv> + { + public: + + LuaEnv() : mMainState(0){}; + ~LuaEnv() {}; + + /// + /// ִջ + /// + inline void Init(lua_State* L) { ASSERT(!mMainState); mMainState = L; }; + + inline lua_State* GetMainState() { return mMainState; }; + + private: + + /// + /// ̱߳һluaһAsuraԶֻһִ붼УֻһΡ + /// ߳\ִջӦglobal_Stateģ + /// + /// struct lua_State *mainthread; + /// + /// ʹlua_newstate()ᴴһһglobal_Stateṹһ߳lua_Stateء + /// global_State̹߳˵һ߳lua_newstate()⣬߳lua_newthread() + /// + /// + lua_State* mMainState; + + }; + + } +} + +namespace AEScripting = AsuraEngine::Scripting; + +#endif
\ No newline at end of file |