Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Toggle main menu visibility
Loading...
Searching...
No Matches
RenderingPipeline.hpp
1
#pragma once
2
3
#include <map>
4
#include <glm/glm.hpp>
5
6
#include <Blackboard/Blackboard.hpp>
7
#include <Common/Rendering/GeometryRenderingStats.hpp>
8
#include <Common/Rendering/RenderGraphBuilder.hpp>
9
#include <Common/Rendering/RendererFeature.hpp>
10
#include <EngineCore/WorldContext/WorldContextSet.hpp>
11
12
namespace
Grindstone
{
13
namespace
GraphicsAPI
{
14
class
CommandBuffer
;
15
}
16
17
namespace
Renderer
{
18
struct
RenderMode
{
19
const
char
* name =
nullptr
;
20
};
21
22
class
RenderingPipeline
{
23
public
:
24
virtual
void
Render(
25
Grindstone::Renderer::RenderGraphBuilder
& renderGraphBuilder,
26
Grindstone::Renderer::RenderFrameContext
& renderFrameContext
27
);
28
29
virtual
const
std::vector<Grindstone::Renderer::RenderMode>& GetDebugModes();
30
virtual
std::vector<Grindstone::Rendering::GeometryRenderStats> GetRenderingStats();
31
virtual
void
PushRenderingStats(
const
Grindstone::Rendering::GeometryRenderStats
& stats);
32
33
virtual
void
RegisterFeature(
Grindstone::Rendering::RendererFeature
* feature);
34
virtual
void
UnregisterFeature(
const
char
* name);
35
36
template
<
typename
T>
37
void
UnregisterFeature() {
38
UnregisterFeature(T::GetStaticFeatureName());
39
}
40
41
protected
:
42
std::vector<Grindstone::Rendering::GeometryRenderStats> renderStats;
43
std::vector<Grindstone::Rendering::RendererFeature*> features;
44
45
};
46
}
47
}
Grindstone::GraphicsAPI::CommandBuffer
Definition
CommandBuffer.hpp:109
Grindstone::Renderer::RenderGraphBuilder
Definition
RenderGraphBuilder.hpp:12
Grindstone::Renderer::RenderingPipeline
Definition
RenderingPipeline.hpp:22
Grindstone::Rendering::RendererFeature
Definition
RendererFeature.hpp:10
Grindstone::GraphicsAPI
Definition
Buffer.hpp:9
Grindstone::Renderer
Definition
AttachmentInfo.hpp:17
Grindstone
Definition
Assert.hpp:16
Grindstone::Renderer::RenderFrameContext
Definition
RenderFrameContext.hpp:24
Grindstone::Renderer::RenderMode
Definition
RenderingPipeline.hpp:18
Grindstone::Rendering::GeometryRenderStats
Definition
GeometryRenderingStats.hpp:6
sources
code
EngineCore
Rendering
RenderingPipeline.hpp
Generated by
1.17.0