summaryrefslogtreecommitdiff
path: root/Source/Asura.Engine/Application.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Asura.Engine/Application.cpp')
-rw-r--r--Source/Asura.Engine/Application.cpp29
1 files changed, 18 insertions, 11 deletions
diff --git a/Source/Asura.Engine/Application.cpp b/Source/Asura.Engine/Application.cpp
index ba5feaa..59f5aae 100644
--- a/Source/Asura.Engine/Application.cpp
+++ b/Source/Asura.Engine/Application.cpp
@@ -1,4 +1,6 @@
#include "Application.h"
+#include "Sdl2/SDL.h"
+#include "Exceptions/Exception.h"
namespace AsuraEngine
{
@@ -13,18 +15,23 @@ namespace AsuraEngine
}
- bool InitGraphics(bool init)
+ bool Application::Application::InitSubModules(uint flag)
{
- if (!init) return true;
-
- }
+ // ʼģ
+ #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);
- bool Application::Init(int flag)
- {
- if (!InitGraphics(flag & ASURA_MODULE_GRAPHICS))
- {
-
- }
+
}
-}
+} \ No newline at end of file