diff options
| author | chai <chaifix@163.com> | 2019-03-29 22:51:04 +0800 | 
|---|---|---|
| committer | chai <chaifix@163.com> | 2019-03-29 22:51:04 +0800 | 
| commit | c302f5ae5f9e30a28e487e8a764d9cc31546bbea (patch) | |
| tree | 7f18bedeece950600336ea7ced7c52c468552c98 /source/modules/asura-utils/scripting | |
| parent | 157530b8b6e11efc5573d5a0db8987a440197aa1 (diff) | |
*rename
Diffstat (limited to 'source/modules/asura-utils/scripting')
| -rw-r--r-- | source/modules/asura-utils/scripting/lua_env.h | 72 | ||||
| -rw-r--r-- | source/modules/asura-utils/scripting/portable.hpp | 29 | 
2 files changed, 101 insertions, 0 deletions
| diff --git a/source/modules/asura-utils/scripting/lua_env.h b/source/modules/asura-utils/scripting/lua_env.h new file mode 100644 index 0000000..e2fc4fc --- /dev/null +++ b/source/modules/asura-utils/scripting/lua_env.h @@ -0,0 +1,72 @@ +#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 stateAsura˼ǣ߳άһluaӦ +		/// Ҫڴlua߽߳ջ +		/// +		class LuaEnv ASURA_FINAL : public Singleton<LuaEnv> +		{ +		public: + +			LuaEnv() : mVM(0) {}; +			~LuaEnv() {}; + +			/// +			/// ִջ +			/// +			inline void Init()  +			{  +				ASSERT(!mVM); +				mVM = new Luax::LuaxVM(); +				ASSERT(mVM); +				mVM->Setup(); +			}; + +			inline lua_State* GetMainThread() +			{  +				return mVM->GetMainThread();  +			}; + +			inline void Exit() +			{ +				delete mVM; +				mVM = nullptr; +			} + +		private: + +			/// +			/// ̱߳һluaһAsuraԶֻһִ붼 +			/// УֻһΡ߳\ִջӦglobal_Stateģ +			/// +			///	    struct lua_State *mainthread; +			/// +			/// ʹlua_newstate()ᴴһһglobal_Stateṹһ +			/// ߳lua_Stateءglobal_State̹߳˵һ +			/// ߳lua_newstate()⣬߳lua_newthread() +			/// +			Luax::LuaxVM* mVM; + +		}; + +	} +} + +namespace AEScripting = AsuraEngine::Scripting; + +#endif
\ No newline at end of file diff --git a/source/modules/asura-utils/scripting/portable.hpp b/source/modules/asura-utils/scripting/portable.hpp new file mode 100644 index 0000000..5badf8d --- /dev/null +++ b/source/modules/asura-utils/scripting/portable.hpp @@ -0,0 +1,29 @@ +#ifndef __ASURA_ENGINE_PORTABLE_H__ +#define __ASURA_ENGINE_PORTABLE_H__ + +#include "../type.h" + +#include "lua_env.h" + +namespace AsuraEngine +{ +	namespace Scripting +	{ + +		/// +		/// ҪעluanativeҪ̳дģ塣 +		/// +		template<typename T>  +		using Portable = Luax::LuaxNativeClass<T>; + +		/// +		/// ҪΪ࣬userdatamember ref̳д࣬ע̳С +		/// +		using NativeAccessor = Luax::ILuaxNativeAccessor; + +	} +} + +namespace AEScripting = AsuraEngine::Scripting; + +#endif
\ No newline at end of file | 
