#pragma once #include #include #include #include "Scene.h" namespace crepe { class SceneManager { public: // Singleton static SceneManager & get_instance(); SceneManager(const SceneManager &) = delete; SceneManager(SceneManager &&) = delete; SceneManager & operator=(const SceneManager &) = delete; SceneManager & operator=(SceneManager &&) = delete; public: template void add_scene(const std::string & name); void load_scene(const std::string & name); void empty_queue(); private: SceneManager(); private: std::vector> scenes; std::queue next_scene; }; } // namespace crepe #include "SceneManager.hpp"