Plasma Engine
2.0
Loading...
Searching...
No Matches
FrameDataProvider.h
1
#pragma once
2
3
#include <RendererCore/Pipeline/Declarations.h>
4
5
class
PL_RENDERERCORE_DLL
plFrameDataProviderBase
:
public
plReflectedClass
6
{
7
PL_ADD_DYNAMIC_REFLECTION(
plFrameDataProviderBase
,
plReflectedClass
);
8
9
protected
:
10
plFrameDataProviderBase
();
11
12
virtual
void
* UpdateData(
const
plRenderViewContext
& renderViewContext,
const
plExtractedRenderData
& extractedData) = 0;
13
14
void
* GetData(
const
plRenderViewContext
& renderViewContext);
15
16
private
:
17
friend
class
plRenderPipeline
;
18
19
const
plRenderPipeline
* m_pOwnerPipeline =
nullptr
;
20
void
* m_pData =
nullptr
;
21
plUInt64 m_uiLastUpdateFrame = 0;
22
};
23
24
template
<
typename
T>
25
class
plFrameDataProvider
:
public
plFrameDataProviderBase
26
{
27
public
:
28
T* GetData(
const
plRenderViewContext
& renderViewContext) {
return
static_cast<
T*
>
(plFrameDataProviderBase::GetData(renderViewContext)); }
29
};
plExtractedRenderData
Definition
ExtractedRenderData.h:10
plFrameDataProviderBase
Definition
FrameDataProvider.h:6
plFrameDataProvider
Definition
FrameDataProvider.h:26
plReflectedClass
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition
DynamicRTTI.h:86
plRenderPipeline
Definition
RenderPipeline.h:20
plRenderViewContext
Definition
Declarations.h:51
Code
Engine
RendererCore
Pipeline
FrameDataProvider.h
Generated by
1.11.0