diff --git a/src/engine/core/scenes/Scene.cpp b/src/engine/core/scenes/Scene.cpp new file mode 100644 index 0000000..7ace207 --- /dev/null +++ b/src/engine/core/scenes/Scene.cpp @@ -0,0 +1,21 @@ +// +// Created by sebastian on 21.04.26. +// + +#include "Scene.h" + +void Scene::onUpdate() { + for (const auto& layer : layers) { + layer->onUpdate(); + } +} + +void Scene::onRender() { + for (const auto& layer : layers) { + layer->onRender(); + } +} + +void Scene::addLayer(std::unique_ptr layer) { + layers.push_back(std::move(layer)); +} diff --git a/src/engine/core/scenes/Scene.h b/src/engine/core/scenes/Scene.h new file mode 100644 index 0000000..072805e --- /dev/null +++ b/src/engine/core/scenes/Scene.h @@ -0,0 +1,29 @@ +// +// Created by sebastian on 21.04.26. +// + +#ifndef SCENE_H +#define SCENE_H +#include +#include + +#include "../../layer/Layer.h" + + +class Scene { +public: + virtual ~Scene() = default; + virtual void onEnter() {} //Layer registrieren + virtual void onExit() {} //Aufräumen, Daten unloaden + void onUpdate(); + void onRender(); + +protected: + std::vector> layers; + + void addLayer(std::unique_ptr layer); +}; + + + +#endif //SCENE_H