3#include <Foundation/Configuration/CVar.h>
4#include <Foundation/Containers/DynamicArray.h>
5#include <Foundation/Containers/HybridArray.h>
6#include <Foundation/Strings/HashedString.h>
7#include <Foundation/Types/UniquePtr.h>
8#include <RendererCore/Pipeline/ExtractedRenderData.h>
22 enum class PipelineState
53 PL_ALWAYS_INLINE T* GetFrameDataProvider()
const
55 return static_cast<T*
>(GetFrameDataProvider(plGetStaticRTTI<T>()));
65#if PL_ENABLED(PL_COMPILE_FOR_DEVELOPMENT)
76 PipelineState Rebuild(
const plView& view);
77 bool RebuildInternal(
const plView& view);
79 bool InitRenderTargetDescriptions(
const plView& view);
80 bool CreateRenderTargetUsage(
const plView& view);
81 bool InitRenderPipelinePasses();
82 void SortExtractors();
83 void UpdateViewData(
const plView& view, plUInt32 uiDataIndex);
86 void ClearRenderPassGraphTextures();
92 void ExtractData(
const plView& view);
93 void FindVisibleObjects(
const plView& view);
102 plThreadID m_CurrentExtractThread;
103 plThreadID m_CurrentRenderThread;
109#if PL_ENABLED(PL_COMPILE_FOR_DEVELOPMENT)
110 plTime m_AverageCullingTime;
114 plUInt64 m_uiLastExtractionFrame;
115 plUInt64 m_uiLastRenderFrame;
118 PipelineState m_PipelineState = PipelineState::Uninitialized;
120 struct ConnectionData
130 struct TextureUsageData
133 plUInt16 m_uiFirstUsageIdx;
134 plUInt16 m_uiLastUsageIdx;
This class encapsulates building a DGML compatible graph.
Definition DGMLWriter.h:10
Definition DynamicArray.h:81
Definition FrameDataProvider.h:6
Represents the frustum of some camera and can be used for culling objects.
Definition Frustum.h:32
Definition RendererFoundationDLL.h:411
Definition HashTable.h:333
This class is optimized to take nearly no memory (sizeof(void*)) and to allow very fast checks whethe...
Definition HashedString.h:25
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
Definition RasterizerView.h:16
Base class for reference counted objects.
Definition RefCounted.h:52
Definition RenderContext.h:30
Definition RenderDataBatch.h:64
Definition RenderPipeline.h:20
Definition RenderPipelinePass.h:26
Definition RenderWorld.h:40
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
[internal] Helper class to implement plCVarInt, plCVarFlag, plCVarBool and plCVarString.
Definition CVar.h:267
A Unique ptr manages an object and destroys that object when it goes out of scope....
Definition UniquePtr.h:10
Encapsulates a view on the given world through the given camera and rendered with the specified Rende...
Definition View.h:21
Definition Declarations.h:24
Definition RenderData.h:19
Definition RenderPipelineNode.h:10
Passed to plRenderPipelinePass::InitRenderPipelinePass to inform about existing connections on each i...
Definition RenderPipelinePass.h:16
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12