#pragma once #include "resource_manager.hpp" #include #include namespace engine { class Application; class Scene; // "scene.hpp" namespace resources { class Texture; class Shader; class Mesh; class Material; } class SceneManager { public: SceneManager(Application* app); ~SceneManager(); SceneManager(const SceneManager&) = delete; SceneManager& operator=(const SceneManager&) = delete; // creates an empty scene and sets it as active Scene* createEmptyScene(); void updateActiveScene(float ts); private: Application* const m_app; std::vector> m_scenes; int m_activeSceneIndex = -1; }; }