Add app:scene_manager interface
This commit is contained in:
parent
3e38bb2672
commit
585fff7683
2 changed files with 23 additions and 3 deletions
|
|
@ -1,6 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <psemek/app/scene.hpp>
|
||||
#include <psemek/app/scene_manager.hpp>
|
||||
|
||||
#include <psemek/util/pimpl.hpp>
|
||||
|
||||
|
|
@ -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<scene> s);
|
||||
std::unique_ptr<scene> pop_scene();
|
||||
void push_scene(std::unique_ptr<scene> s) override;
|
||||
std::unique_ptr<scene> pop_scene() override;
|
||||
|
||||
void show_cursor(bool show);
|
||||
void vsync(bool on);
|
||||
|
|
|
|||
19
libs/app/include/psemek/app/scene_manager.hpp
Normal file
19
libs/app/include/psemek/app/scene_manager.hpp
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#pragma once
|
||||
|
||||
#include <psemek/app/scene.hpp>
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace psemek::app
|
||||
{
|
||||
|
||||
struct scene_manager
|
||||
{
|
||||
virtual void push_scene(std::unique_ptr<scene>) = 0;
|
||||
virtual std::unique_ptr<scene> pop_scene() = 0;
|
||||
|
||||
virtual ~scene_manager() {}
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue