Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
RendererFeature.hpp
1#pragma once
2
3#include <string>
4
5#include <Common/Rendering/RenderFrameContext.hpp>
6#include <Common/Rendering/RenderGraphBuilder.hpp>
7#include <Common/Rendering/RenderGraphOrderEvent.hpp>
8
9namespace Grindstone::Rendering {
10 class RendererFeature {
11 public:
12 RendererFeature() = delete;
13 RendererFeature(const char* featureName, uint32_t order) : featureName(featureName), renderGraphOrderEvent(order) {}
14 RendererFeature(const RendererFeature& o) = delete;
15 RendererFeature(RendererFeature&& o) noexcept = delete;
16 RendererFeature& operator=(const RendererFeature& o) = delete;
17 RendererFeature& operator=(RendererFeature&& o) noexcept = delete;
18
19 virtual void Initialize() {};
20 virtual void Bind(
23 ) = 0;
24 const std::string& GetFeatureName() const { return featureName; }
25 uint32_t GetOrder() const { return renderGraphOrderEvent; }
26 virtual uint32_t GetRenderGraphOrder() {
27 return renderGraphOrderEvent;
28 }
29
30 protected:
31 std::string featureName = "[[Unnamed]]";
32 uint32_t renderGraphOrderEvent = 0;
33 };
34}
Definition RenderGraphBuilder.hpp:12
Definition AssetRendererFilter.hpp:6
Definition RenderFrameContext.hpp:24