diff options
author | chai <chaifix@163.com> | 2019-03-19 23:06:27 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-03-19 23:06:27 +0800 |
commit | 1497dccd63a84b7ee2b229b1ad9c5c02718f2a78 (patch) | |
tree | f8d1bff50da13e126d08c7345653e002e293202d /source/libs/asura-lib-core/application.cpp | |
parent | 5e2a973516e0729b225da9de0b03015dc5854ac4 (diff) |
*rename
Diffstat (limited to 'source/libs/asura-lib-core/application.cpp')
-rw-r--r-- | source/libs/asura-lib-core/application.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/source/libs/asura-lib-core/application.cpp b/source/libs/asura-lib-core/application.cpp new file mode 100644 index 0000000..598bca8 --- /dev/null +++ b/source/libs/asura-lib-core/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 |