#pragma once #include "resource_manager.hpp" #include #include namespace engine { class Application; class Scene; // "scene.hpp" namespace resources { class Texture; } class SceneManager { public: SceneManager(Application* app); ~SceneManager(); SceneManager(const SceneManager&) = delete; SceneManager& operator=(const SceneManager&) = delete; Scene* createScene(); void updateActiveScene(float ts); /* getters */ ResourceManager* getTextureManager() { return m_textureManager.get(); } private: Application* const m_app; std::vector> m_scenes; int m_activeSceneIndex = -1; std::unique_ptr> m_textureManager; }; }