diff options
author | chai <chaifix@163.com> | 2019-03-14 23:12:54 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-03-14 23:12:54 +0800 |
commit | 8644e03586ac9c39741f62cbcbce87b18805538c (patch) | |
tree | 72021765f5262b7f2f7eebe299fd4e1aaa7c89b7 /Source/Asura.Engine/application.cpp | |
parent | 8d8c4ff1664625e7428d0d31cd798d9321680cb2 (diff) |
*大小写
Diffstat (limited to 'Source/Asura.Engine/application.cpp')
-rw-r--r-- | Source/Asura.Engine/application.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Source/Asura.Engine/application.cpp b/Source/Asura.Engine/application.cpp new file mode 100644 index 0000000..598bca8 --- /dev/null +++ b/Source/Asura.Engine/application.cpp @@ -0,0 +1,59 @@ +#include "Sdl2/SDL.h" +#include "Exceptions/Exception.h" +#include "Scripting/Luax.hpp" +#include "Application.h" + +using namespace Luax; + +namespace AsuraEngine +{ + + Application::Application() + { + + } + + Application::~Application() + { + + } + + bool Application::InitSubModules(uint flag) + { + // ʼģ + #define TryInitSubModule(module_name, func_name) \ + if((flag&ASURA_MODULE_##module_name) && !Application::Init##func_name()) \ + throw Exception("Asura init submodule %s failed.", #module_name); + + TryInitSubModule(GRAPHICS, Graphics); + TryInitSubModule(AUDIO, Audio); + TryInitSubModule(FONT, Font); + TryInitSubModule(INPUT, Input); + TryInitSubModule(MATH, Math); + TryInitSubModule(PHYSICS, Physics); + TryInitSubModule(TIME, Time); + TryInitSubModule(WINDOW, Window); + + } + + void Application::PortToLua() + { + LuaxState state(mLuaState); + +#define RegisterLuaFactory(T) state.RegisterFactory<T>(); + + state.SetToGlobalNamespace(); + state.PushNamespace("AsuraEngine"); + + RegisterLuaFactory(AEGraphics::Image>); + +#ifdef ASURA_AUTHOR + state.PushNamespace("Version"); + + state.PopNamespace(); // AsuraEngine.Version +#endif + + state.PopNamespace(); // AsuraEngine + } + +}
\ No newline at end of file |