engine/include/scene_manager.hpp

31 lines
559 B
C++
Raw Normal View History

2022-11-29 14:22:03 +00:00
#pragma once
2022-11-30 10:36:50 +00:00
#include <vector>
2022-11-30 00:46:03 +00:00
#include <memory>
2022-11-29 14:22:03 +00:00
namespace engine {
2022-11-30 00:46:03 +00:00
class Scene; // "scene.hpp"
2022-12-01 15:54:28 +00:00
class TextureManager; // "texture_manager.hpp"
2022-11-30 00:46:03 +00:00
2022-11-29 14:22:03 +00:00
class SceneManager {
public:
SceneManager();
~SceneManager();
SceneManager(const SceneManager&) = delete;
SceneManager& operator=(const SceneManager&) = delete;
2022-11-30 10:36:50 +00:00
void createScene(std::unique_ptr<Scene>&& scene);
void updateActiveScene();
2022-11-29 14:22:03 +00:00
private:
2022-11-30 10:36:50 +00:00
std::vector<std::unique_ptr<Scene>> m_scenes;
int m_activeSceneIndex = -1;
2022-11-29 14:22:03 +00:00
2022-12-01 15:54:28 +00:00
const std::unique_ptr<TextureManager> m_textureManager;
2022-11-29 14:22:03 +00:00
};
}