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 <functional>
8#include <memory>
9#include <vector>
10
11namespace Engine {
12
13 namespace Entities
14 {
15 class Scene;
16 } // namespace Entities
17
19 {
20 const char * name = nullptr;
21 std::function<Entities::Scene *()> createScene;
22 };
23
24 class GameModule {
25 public:
26 GameModule() = default;
27 virtual ~GameModule() = default;
28
29 virtual void init(GLFWwindow* window);
30 virtual void initUI(GLFWwindow* window);
31 virtual void startup();
32 virtual void preTick();
33 virtual void tick(float deltaTime);
34 virtual void postTick();
35
36 virtual void preDraw();
37 virtual void onDraw(VkCommandBuffer commandBuffer);
38 virtual void postDraw();
39
40 virtual void shutdown();
41
42 [[nodiscard]] virtual std::vector<std::filesystem::path> getInitialSceneContents() const;
43
44 virtual void collectSceneBrowserEntries( std::vector<SceneBrowserEntry> & entries ) const;
45
46 GLFWwindow* getWindow() const;
47
49
50 private:
51 GLFWwindow* window;
52 };
53}
A scene is the overarching structure which can spawn, contain and destroy actors or entities.
Definition Scene.h:62
GLFWwindow * getWindow() const
virtual void collectSceneBrowserEntries(std::vector< SceneBrowserEntry > &entries) 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:51
std::function< Entities::Scene *()> createScene
Definition GameModule.h:21