From 585fff7683515ce2a7a30566b3a478c8afbd6d4f Mon Sep 17 00:00:00 2001 From: lisyarus Date: Fri, 2 Jul 2021 11:35:08 +0300 Subject: [PATCH] Add app:scene_manager interface --- libs/app/include/psemek/app/app.hpp | 7 ++++--- libs/app/include/psemek/app/scene_manager.hpp | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 libs/app/include/psemek/app/scene_manager.hpp diff --git a/libs/app/include/psemek/app/app.hpp b/libs/app/include/psemek/app/app.hpp index 72ec4f16..6fb395d0 100644 --- a/libs/app/include/psemek/app/app.hpp +++ b/libs/app/include/psemek/app/app.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include @@ -12,7 +13,7 @@ namespace psemek::app { struct app - : scene_base + : scene_base, scene_manager { struct options { @@ -36,8 +37,8 @@ namespace psemek::app void poll_events(); void run(); - void push_scene(std::unique_ptr s); - std::unique_ptr pop_scene(); + void push_scene(std::unique_ptr s) override; + std::unique_ptr pop_scene() override; void show_cursor(bool show); void vsync(bool on); diff --git a/libs/app/include/psemek/app/scene_manager.hpp b/libs/app/include/psemek/app/scene_manager.hpp new file mode 100644 index 00000000..eb1ac795 --- /dev/null +++ b/libs/app/include/psemek/app/scene_manager.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include + +#include + +namespace psemek::app +{ + + struct scene_manager + { + virtual void push_scene(std::unique_ptr) = 0; + virtual std::unique_ptr pop_scene() = 0; + + virtual ~scene_manager() {} + }; + + +}