Plasma Engine  2.0
Loading...
Searching...
No Matches
HistorySourcePass.h
1#pragma once
2
3#include <RendererCore/Pipeline/FrameDataProvider.h>
4#include <RendererCore/Pipeline/Passes/SourcePass.h>
5
10class PL_RENDERERCORE_DLL plHistorySourcePass : public plRenderPipelinePass
11{
12 PL_ADD_DYNAMIC_REFLECTION(plHistorySourcePass, plRenderPipelinePass);
13
14public:
15 plHistorySourcePass(const char* szName = "HistorySourcePass");
17
20 virtual void Execute(const plRenderViewContext& renderViewContext, const plArrayPtr<plRenderPipelinePassConnection* const> inputs, const plArrayPtr<plRenderPipelinePassConnection* const> outputs) override;
21 virtual plResult Serialize(plStreamWriter& inout_stream) const override;
22 virtual plResult Deserialize(plStreamReader& inout_stream) override;
23
24protected:
26 plEnum<plSourceFormat> m_Format = plSourceFormat::Default;
27 plEnum<plGALMSAASampleCount> m_MsaaMode = plGALMSAASampleCount::None;
28 plColor m_ClearColor = plColor::Black;
29 bool m_bUseAsUAV = false;
30
31 bool m_bFirstExecute = true;
32};
33
35{
37
38public:
41
42 void ResetTexture(plStringView sSourcePassName);
43 plGALTextureHandle GetOrCreateTexture(plStringView sSourcePassName, const plGALTextureCreationDescription& desc);
44
45public:
47
48private:
49 // We ignore the frame-based logic for this data provider as we only want to store cross frame data.
50 virtual void* UpdateData(const plRenderViewContext& renderViewContext, const plExtractedRenderData& extractedData) override { return nullptr; }
51};
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
plColor represents an RGBA color in linear color space. Values are stored as float,...
Definition Color.h:44
static const plColor Black
#000000
Definition Color.h:57
Definition ExtractedRenderData.h:10
Definition FrameDataProvider.h:6
Definition RendererFoundationDLL.h:411
Definition HashTable.h:333
Allows to access data from a previous frame. Always comes in a pair with a plHistoryTargetPass....
Definition HistorySourcePass.h:11
Definition HistorySourcePass.h:35
Definition RenderPipelinePass.h:26
virtual void Execute(const plRenderViewContext &renderViewContext, const plArrayPtr< plRenderPipelinePassConnection *const > inputs, const plArrayPtr< plRenderPipelinePassConnection *const > outputs)=0
Render into outputs. Both inputs and outputs are passed in with actual texture handles....
virtual plGALTextureHandle QueryTextureProvider(const plRenderPipelineNodePin *pPin, const plGALTextureCreationDescription &desc)
Definition RenderPipelinePass.h:52
virtual bool GetRenderTargetDescriptions(const plView &view, const plArrayPtr< plGALTextureCreationDescription *const > inputs, plArrayPtr< plGALTextureCreationDescription > outputs)=0
For a given input pin configuration, provide the output configuration of this node....
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
Encapsulates a view on the given world through the given camera and rendered with the specified Rende...
Definition View.h:21
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Definition Descriptors.h:177
Definition RenderPipelineNode.h:65
Definition RenderPipelineNode.h:10
Definition Declarations.h:51
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54