Monad Engine da02fba2
> Undercity Codex_
Loading...
Searching...
No Matches
Engine.h
Go to the documentation of this file.
1#pragma once
2#include "input/InputManager.h"
3#include "graphics/GraphicsAPI.h"
4#include "graphics/Texture.h"
5#include "render/RenderQueue.h"
6#include "scene/Scene.h"
7#include "io/FileSystem.h"
8#include "physics/PhysicsManager.h"
9#include"audio/AudioManager.h"
10
11#include <memory>
12#include <chrono>
13
14struct GLFWwindow;
15namespace eng
16{
17 class Application;
18 class Engine
19 {
20 public:
21 static Engine& GetInstance();
22
23 private:
24 Engine() = default;
25 Engine(const Engine&) = delete;
26 Engine(Engine&&) = delete;
27 Engine& operator=(const Engine&) = delete;
28 Engine& operator=(Engine&&) = delete;
29
30 public:
31 bool Init(int width, int height);
32 void Run();
33 void Destroy();
34
35 void SetApplication(Application* app);
44
45 void SetScene(Scene* scene);
46 Scene* GetScene();
47
48 private:
49 std::unique_ptr<Application> m_application;
50 std::chrono::steady_clock::time_point m_lastTimePoint;
51 GLFWwindow* m_window = nullptr;
52 InputManager m_inputManager;
53 GraphicsAPI m_graphicsAPI;
54 RenderQueue m_rederQueue;
55 FileSystem m_fileSystem;
56 TextureManager m_textureManager;
57 PhysicsManager m_physicsManager;
58 AudioManager m_audioManager;
59 std::unique_ptr<Scene> m_currentScene;
60 };
61}
Application * GetApplication()
Definition Engine.cpp:185
Scene * GetScene()
Definition Engine.cpp:230
void SetApplication(Application *app)
Definition Engine.cpp:180
GraphicsAPI & GetGraphicsAPI()
Definition Engine.cpp:195
AudioManager & GetAudioManager()
Definition Engine.cpp:220
FileSystem & GetFileSystem()
Definition Engine.cpp:205
bool Init(int width, int height)
Definition Engine.cpp:56
InputManager & GetInputManager()
Definition Engine.cpp:190
TextureManager & GetTextureManager()
Definition Engine.cpp:210
void Run()
Definition Engine.cpp:108
void SetScene(Scene *scene)
Definition Engine.cpp:225
static Engine & GetInstance()
Definition Engine.cpp:50
RenderQueue & GetRenderQueue()
Definition Engine.cpp:200
void Destroy()
Definition Engine.cpp:169
PhysicsManager & GetPhysicsManager()
Definition Engine.cpp:215