Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
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
12namespace Grindstone {
13 namespace GraphicsAPI {
14 class CommandBuffer;
15 }
16
17 namespace Renderer {
18 struct RenderMode {
19 const char* name = nullptr;
20 };
21
23 public:
24 virtual void Render(
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}
Definition CommandBuffer.hpp:109
Definition RenderGraphBuilder.hpp:12
Definition RenderingPipeline.hpp:22
Definition RendererFeature.hpp:10
Definition Buffer.hpp:9
Definition AttachmentInfo.hpp:17
Definition Assert.hpp:16
Definition RenderFrameContext.hpp:24
Definition RenderingPipeline.hpp:18
Definition GeometryRenderingStats.hpp:6