Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
GameModule.h
Go to the documentation of this file.
1#pragma once
2
4#include "GLFW/glfw3.h"
5
6#include <filesystem>
7#include <memory>
8#include <vector>
9
10namespace Engine {
11
12 namespace Core
13 {
14 class Scene;
15 }
16
17 class GameModule {
18 public:
19 GameModule() = default;
20 virtual ~GameModule() = default;
21
22 virtual void init(GLFWwindow* window);
23 virtual void initUI(GLFWwindow* window);
24 virtual void startup();
25 virtual void preTick();
26 virtual void tick(float deltaTime);
27 virtual void postTick();
28
29 virtual void preDraw();
30 virtual void onDraw(VkCommandBuffer commandBuffer);
31 virtual void postDraw();
32
33 virtual void shutdown();
34
35 [[nodiscard]] virtual std::vector<std::filesystem::path> getInitialSceneContents() const;
36
37 GLFWwindow* getWindow() const;
38
40
41 private:
42 GLFWwindow* window;
43 };
44}
A scene is the overarching structure which can spawn, contain and destroy actors or entities.
Definition Scene.h:56
GLFWwindow * getWindow() const
virtual Entities::Scene * loadInitialScene()
virtual std::vector< std::filesystem::path > getInitialSceneContents() const
virtual void postDraw()
virtual void initUI(GLFWwindow *window)
virtual void startup()
virtual void tick(float deltaTime)
virtual void shutdown()
GameModule()=default
virtual void preTick()
virtual void postTick()
virtual void preDraw()
virtual void init(GLFWwindow *window)
virtual ~GameModule()=default
virtual void onDraw(VkCommandBuffer commandBuffer)
GLFWwindow * window
Definition GameModule.h:42
Core audio subsystem owning the miniaudio engine and managing playback.
Definition AudioConfig.h:9