Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Toggle main menu visibility
Loading...
Searching...
No Matches
BaseRenderer.hpp
1
#pragma once
2
3
#include <entt/entt.hpp>
4
#include <glm/glm.hpp>
5
6
#include <Common/Rendering/GeometryRenderingStats.hpp>
7
#include <Common/Rendering/RenderGraphBuilder.hpp>
8
#include <Common/Graphics/CommandBuffer.hpp>
9
#include <EngineCore/WorldContext/WorldContextSet.hpp>
10
11
namespace
Grindstone {
12
namespace
GraphicsAPI {
13
class
RenderPass
;
14
class
Framebuffer
;
15
class
CommandBuffer
;
16
}
17
18
namespace
Events {
19
struct
BaseEvent
;
20
}
21
22
class
BaseRenderer
{
23
public
:
24
struct
RenderMode
{
25
const
char
* name =
nullptr
;
26
};
27
28
virtual
~BaseRenderer
() {};
29
virtual
bool
OnWindowResize(
Events::BaseEvent
*) = 0;
30
virtual
void
Resize(uint32_t width, uint32_t height) = 0;
31
virtual
void
Render(
32
GraphicsAPI::CommandBuffer
* commandBuffer,
33
Grindstone::WorldContextSet
& worldContextSet,
34
glm::mat4 projectionMatrix,
35
glm::mat4 viewMatrix,
36
glm::vec3 eyePos,
37
Grindstone::Renderer::RenderGraphBuilder
& renderGraphBuilder,
38
Grindstone::Renderer::RenderGraphBuilderResourceRef
colorImageRef,
39
Grindstone::Renderer::RenderGraphBuilderResourceRef
depthImageRef
40
) = 0;
41
virtual
uint16_t GetRenderModeCount()
const
= 0;
42
virtual
const
RenderMode* GetRenderModes()
const
= 0;
43
virtual
void
SetRenderMode(uint16_t mode) = 0;
44
virtual
std::vector<Grindstone::Rendering::GeometryRenderStats> GetRenderingStats() = 0;
45
};
46
47
class
BaseRendererFactory
{
48
public
:
49
virtual
Grindstone::BaseRenderer
* CreateRenderer(
GraphicsAPI::RenderPass
* targetRenderPass) = 0;
50
virtual
~BaseRendererFactory
() {}
51
};
52
}
Grindstone::BaseRendererFactory
Definition
BaseRenderer.hpp:47
Grindstone::BaseRenderer
Definition
BaseRenderer.hpp:22
Grindstone::GraphicsAPI::CommandBuffer
Definition
CommandBuffer.hpp:109
Grindstone::GraphicsAPI::Framebuffer
Definition
Framebuffer.hpp:16
Grindstone::GraphicsAPI::RenderPass
Definition
RenderPass.hpp:10
Grindstone::Renderer::RenderGraphBuilder
Definition
RenderGraphBuilder.hpp:12
Grindstone::WorldContextSet
Definition
WorldContextSet.hpp:11
Grindstone::BaseRenderer::RenderMode
Definition
BaseRenderer.hpp:24
Grindstone::Events::BaseEvent
Definition
BaseEvent.hpp:7
Grindstone::Renderer::RenderGraphBuilderResourceRef
Definition
RenderGraphResourceRef.hpp:51
sources
code
EngineCore
Rendering
BaseRenderer.hpp
Generated by
1.17.0