VulkanEngine 0.1
Graphics engine using Vulkan
Loading...
Searching...
No Matches
Scene.h
1// Copyright (c) 2024 Michael Carlie. All Rights Reserved.
2//
3// This software is released under the MIT License.
4// https://opensource.org/licenses/MIT
5
6#ifndef INCLUDE_VULKANENGINE_SCENE_H_
7#define INCLUDE_VULKANENGINE_SCENE_H_
8
9#include <VulkanEngine/SceneObject.h>
10#include <VulkanEngine/Window.h>
11
12#include <memory>
13#include <vector>
14
15namespace VulkanEngine {
16
17class Scene : public SceneObject {
18 public:
20 explicit Scene(const std::vector<std::shared_ptr<Window>>& _windows);
21
23 virtual ~Scene();
24
26 void update();
27
29 const std::shared_ptr<Window> getActiveWindow() const;
30
31 private:
34 void update(std::shared_ptr<SceneState> scene_state) override;
35
37 std::shared_ptr<SceneState> state_instance;
38
40 std::vector<std::shared_ptr<Window>> windows;
41};
42
43} // namespace VulkanEngine
44
45#endif // INCLUDE_VULKANENGINE_SCENE_H_
Definition: Scene.h:17
virtual ~Scene()
Destructor.
Definition: Scene.cpp:31
const std::shared_ptr< Window > getActiveWindow() const
Get the currently active window.
Definition: Scene.cpp:49
void update()
Update the scene object.
Definition: Scene.cpp:33
Represents an object in a scene.
Definition: SceneObject.h:17
TODO development of this class is in progress.
Definition: Attribute.h:13