aboutsummaryrefslogtreecommitdiffstats
path: root/yage/engine/engine.cpp
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2018-01-08 14:09:43 +0000
committerYann Herklotz <ymherklotz@gmail.com>2018-01-08 14:09:43 +0000
commitc514e44b73b3fc4db492e4bd333fa223c6c1eef5 (patch)
treebb1cc421392f263531b82ad1a67454eb351bbd74 /yage/engine/engine.cpp
parent0a42123b150e06f28ae82e460e854984c2dc9648 (diff)
downloadYAGE-c514e44b73b3fc4db492e4bd333fa223c6c1eef5.tar.gz
YAGE-c514e44b73b3fc4db492e4bd333fa223c6c1eef5.zip
[Engine] Adding entity/component system
Diffstat (limited to 'yage/engine/engine.cpp')
-rw-r--r--yage/engine/engine.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/yage/engine/engine.cpp b/yage/engine/engine.cpp
new file mode 100644
index 00000000..3918e7e9
--- /dev/null
+++ b/yage/engine/engine.cpp
@@ -0,0 +1,52 @@
+/** ---------------------------------------------------------------------------
+ * @file: engine.cpp
+ *
+ * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com>
+ * MIT License, see LICENSE file for more details.
+ * ----------------------------------------------------------------------------
+ */
+
+#include "engine.h"
+
+#include "../core/window.h"
+
+namespace yage
+{
+
+void Engine::mainLoop()
+{
+ Window window;
+
+ window.create("Game Engine", 800, 640);
+
+ while(!window.shouldClose()) {
+ window.clearBuffer();
+
+ update();
+
+ window.swapBuffer();
+ }
+}
+
+void Engine::update()
+{
+ const double dt = 1.0 / 60.0;
+
+ for(auto &&system : systems_) {
+ system->update(dt);
+ }
+}
+
+void Engine::addSystem(System *system)
+{
+ systems_.push_back(system);
+}
+
+Engine &Engine::instance()
+{
+ static Engine engine_instance;
+
+ return engine_instance;
+}
+
+} // namespace yage