Plasma Engine  2.0
Loading...
Searching...
No Matches
ClusteredDataProvider.h
1#pragma once
2
3#include <RendererCore/Declarations.h>
4#include <RendererCore/Pipeline/FrameDataProvider.h>
5#include <RendererCore/Shader/ConstantBufferStorage.h>
6
7struct PL_RENDERERCORE_DLL plClusteredDataGPU
8{
9 PL_DISALLOW_COPY_AND_ASSIGN(plClusteredDataGPU);
10
11public:
14
15 plUInt32 m_uiSkyIrradianceIndex = 0;
16 plEnum<plCameraUsageHint> m_cameraUsageHint = plCameraUsageHint::Default;
17
18 plGALBufferHandle m_hLightDataBuffer;
19 plGALBufferHandle m_hDecalDataBuffer;
20 plGALBufferHandle m_hReflectionProbeDataBuffer;
21 plGALBufferHandle m_hClusterDataBuffer;
22 plGALBufferHandle m_hClusterItemBuffer;
23
24 plConstantBufferStorageHandle m_hConstantBuffer;
25
26 plGALSamplerStateHandle m_hShadowSampler;
27
28 plDecalAtlasResourceHandle m_hDecalAtlas;
29 plGALSamplerStateHandle m_hDecalAtlasSampler;
30
31 void BindResources(plRenderContext* pRenderContext);
32};
33
34class PL_RENDERERCORE_DLL plClusteredDataProvider : public plFrameDataProvider<plClusteredDataGPU>
35{
36 PL_ADD_DYNAMIC_REFLECTION(plClusteredDataProvider, plFrameDataProviderBase);
37
38public:
41
42private:
43 virtual void* UpdateData(const plRenderViewContext& renderViewContext, const plExtractedRenderData& extractedData) override;
44
45 plClusteredDataGPU m_Data;
46};
Definition ClusteredDataProvider.h:35
Definition ConstantBufferStorage.h:54
Definition ExtractedRenderData.h:10
Definition FrameDataProvider.h:6
Definition FrameDataProvider.h:26
Definition RendererFoundationDLL.h:418
Definition RendererFoundationDLL.h:481
Definition RenderContext.h:30
Definition ClusteredDataProvider.h:8
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Definition Declarations.h:51