summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/include/kurator/engine/Context.h23
-rw-r--r--engine/src/Context.cpp25
2 files changed, 45 insertions, 3 deletions
diff --git a/engine/include/kurator/engine/Context.h b/engine/include/kurator/engine/Context.h
index c2c7cca..093285e 100644
--- a/engine/include/kurator/engine/Context.h
+++ b/engine/include/kurator/engine/Context.h
@@ -3,6 +3,7 @@
#include <entt/entity/registry.hpp>
#include <entt/signal/dispatcher.hpp>
+#include "Camera.h"
#include "Clock.h"
@@ -12,12 +13,32 @@ namespace engine
{
+struct Context;
+struct ConstContext;
+
+
struct Context
{
- Context(entt::registry& registry_, entt::dispatcher& dispatcher_, Clock& clock_);
+ Context(entt::registry& registry_, entt::dispatcher& dispatcher_, Clock& clock_, Camera& camera_);
entt::registry& registry;
entt::dispatcher& dispatcher;
Clock& clock;
+ Camera& camera;
+ operator ConstContext() const;
+};
+
+
+struct ConstContext
+{
+ ConstContext(
+ const entt::registry& registry_,
+ const entt::dispatcher& dispatcher_,
+ const Clock& clock_,
+ const Camera& camera_);
+ const entt::registry& registry;
+ const entt::dispatcher& dispatcher;
+ const Clock& clock;
+ const Camera& camera;
};
diff --git a/engine/src/Context.cpp b/engine/src/Context.cpp
index eeec938..8c81c89 100644
--- a/engine/src/Context.cpp
+++ b/engine/src/Context.cpp
@@ -3,6 +3,7 @@
#include <entt/entity/registry.hpp>
#include <entt/signal/dispatcher.hpp>
+#include <kurator/engine/Camera.h>
#include <kurator/engine/Clock.h>
@@ -12,10 +13,30 @@ namespace engine
{
-Context::Context(entt::registry& registry_, entt::dispatcher& dispatcher_, Clock& clock_) :
+Context::Context(entt::registry& registry_, entt::dispatcher& dispatcher_, Clock& clock_, Camera& camera_) :
registry {registry_},
dispatcher {dispatcher_},
- clock {clock_}
+ clock {clock_},
+ camera {camera_}
+{
+}
+
+
+Context::operator ConstContext() const
+{
+ return ConstContext{registry, dispatcher, clock, camera};
+}
+
+
+ConstContext::ConstContext(
+ const entt::registry& registry_,
+ const entt::dispatcher& dispatcher_,
+ const Clock& clock_,
+ const Camera& camera_) :
+ registry {registry_},
+ dispatcher {dispatcher_},
+ clock {clock_},
+ camera {camera_}
{
}