Vulkan Schnee 0.0.1 (22840dc8)
High-performance rendering engine
Loading...
Searching...
No Matches
Subsystems.h
1#pragma once
2
3namespace Engine::Core {
5 class RenderingDataManager;
6 class SceneManager;
7 class AssetRegistry;
8 class AssetManager;
9 class PhysicsEngine;
10 class TimerManager;
11 class AudioEngine;
12}
13
14namespace Engine {
15 namespace Rendering {
16 class Headset;
17 class Renderer;
18 class WorldUiRenderer;
19 }
20
21 class EngineKern;
22
60
65 friend Engine::Rendering::Renderer;
66 friend Engine::EngineKern;
67 public:
68 ImplSubsystems() = default;
70
72 [[nodiscard]] Core::RenderingDataManager* renderingDataManager() const;
73 [[nodiscard]] Rendering::Renderer* renderer() const;
74 [[nodiscard]] Core::ApplicationContext* context() const;
75 [[nodiscard]] Rendering::Headset *headset() const;
76
77 private:
80
81 Core::RenderingDataManager* renderingDataManager_ = nullptr;
82 void bindRenderingDataManager(Core::RenderingDataManager* renderingDataManager);
83
84 Rendering::Renderer* renderer_ = nullptr;
85 void bindRenderer(Rendering::Renderer* renderer);
86
89
92 };
93}
94
The application context is the core class which stores the basic openxr and vulkan objects.
Coordinates engine asset loading pipelines and runtime texture descriptor ownership.
Groups typed asset registry stores and resolves authored asset references.
Owns the miniaudio engine and provides the playback API.
Definition AudioEngine.h:49
Owns the Bullet dynamics world and dispatches engine collision events.
Manages game objects within a scene, handling registration, ID allocation, and GPU buffer synchroniza...
Schedules one-shot callbacks against engine time.
Owns the engine runtime and provides access to engine subsystems.
Definition Engine.h:67
Rendering::Headset * headset_
Definition Subsystems.h:90
Rendering::Renderer * renderer_
Definition Subsystems.h:84
Core::ApplicationContext * context_
Definition Subsystems.h:87
Rendering::WorldUiRenderer * worldUiRenderer() const
Core::RenderingDataManager * renderingDataManager() const
Rendering::WorldUiRenderer * worldUiRenderer_
Definition Subsystems.h:78
static ImplSubsystems & get()
void bindRenderingDataManager(Core::RenderingDataManager *renderingDataManager)
void bindHeadset(Rendering::Headset *headset)
void bindRenderer(Rendering::Renderer *renderer)
Rendering::Renderer * renderer() const
Rendering::Headset * headset() const
Core::RenderingDataManager * renderingDataManager_
Definition Subsystems.h:81
Core::ApplicationContext * context() const
void bindWorldUiRenderer(Rendering::WorldUiRenderer *worldUiRenderer)
void bindContext(Core::ApplicationContext *context)
Owns the OpenXR session, XR swapchain, eye transforms, and per-frame XR submission state.
Definition Headset.h:55
Renders WidgetComponent ImGui content into per-widget textures for world-space UI.
static Subsystems & get()
void bindAssetManger(Core::AssetManager *assetManager)
Core::AssetManager * assetManager() const
Core::SceneManager * sceneManager() const
void bindAssetRegistry(Core::AssetRegistry *assetRegistry)
Core::PhysicsEngine * physicsEngine_
Definition Subsystems.h:47
Core::PhysicsEngine * physicsEngine() const
Core::SceneManager * sceneManager_
Definition Subsystems.h:56
void bindSceneManager(Core::SceneManager *sceneManager)
void bindAudioEngine(Core::AudioEngine *audioEngine)
Core::AudioEngine * audioEngine() const
Core::TimerManager * timerManager() const
Subsystems()=default
Core::AssetRegistry * assetRegistry() const
void bindTimerManager(Core::TimerManager *timerManager)
Core::TimerManager * timerManager_
Definition Subsystems.h:44
void bindPhysicsEngine(Core::PhysicsEngine *physicsEngine)
Core::AssetRegistry * assetRegistry_
Definition Subsystems.h:53
Core::AssetManager * assetManager_
Definition Subsystems.h:50
Core::AudioEngine * audioEngine_
Definition Subsystems.h:41