Plasma Engine  2.0
Loading...
Searching...
No Matches
ForwardRenderPass.h
1#pragma once
2
3#include <RendererCore/Declarations.h>
4#include <RendererCore/Pipeline/RenderPipelinePass.h>
5
7{
8 using StorageType = plInt8;
9
10 enum Enum
11 {
12 Normal,
13 Simplified,
14
15 Default = Normal,
16 };
17};
18
19PL_DECLARE_REFLECTABLE_TYPE(PL_NO_LINKAGE, plForwardRenderShadingQuality);
20
22class PL_RENDERERCORE_DLL plForwardRenderPass : public plRenderPipelinePass
23{
24 PL_ADD_DYNAMIC_REFLECTION(plForwardRenderPass, plRenderPipelinePass);
25
26public:
27 plForwardRenderPass(const char* szName = "ForwardRenderPass");
29
31 virtual void Execute(const plRenderViewContext& renderViewContext, const plArrayPtr<plRenderPipelinePassConnection* const> inputs, const plArrayPtr<plRenderPipelinePassConnection* const> outputs) override;
32 virtual plResult Serialize(plStreamWriter& inout_stream) const override;
33 virtual plResult Deserialize(plStreamReader& inout_stream) override;
34
35protected:
36 virtual void SetupResources(plGALCommandEncoder* pCommandEncoder, const plRenderViewContext& renderViewContext, const plArrayPtr<plRenderPipelinePassConnection* const> inputs, const plArrayPtr<plRenderPipelinePassConnection* const> outputs);
37 virtual void SetupPermutationVars(const plRenderViewContext& renderViewContext);
38 virtual void SetupLighting(const plRenderViewContext& renderViewContext);
39
40 virtual void RenderObjects(const plRenderViewContext& renderViewContext) = 0;
41
46 plRenderPipelineNodePassThroughPin m_PinDepthStencil;
47
49};
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
A standard forward render pass that renders into the color target.
Definition ForwardRenderPass.h:23
Definition CommandEncoder.h:11
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 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
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 ForwardRenderPass.h:7
Definition RenderPipelineNode.h:72
Definition Declarations.h:51
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54