From 1497dccd63a84b7ee2b229b1ad9c5c02718f2a78 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 19 Mar 2019 23:06:27 +0800 Subject: *rename --- source/libs/asura-lib-core/application.cpp | 59 ++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 source/libs/asura-lib-core/application.cpp (limited to 'source/libs/asura-lib-core/application.cpp') 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(); + + 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 -- cgit v1.1-26-g67d0