Plasma Engine  2.0
Loading...
Searching...
No Matches
KrautRenderer.h
1#pragma once
2
3#include <KrautPlugin/Renderer/KrautRenderData.h>
4#include <RendererCore/Pipeline/Renderer.h>
5#include <RendererCore/Shader/ConstantBufferStorage.h>
6
7#include <RendererCore/../../../Data/Plugins/Kraut/TreeShaderData.h>
8
9struct plPerInstanceData;
10
12class PL_KRAUTPLUGIN_DLL plKrautRenderer : public plRenderer
13{
14 PL_ADD_DYNAMIC_REFLECTION(plKrautRenderer, plRenderer);
15 PL_DISALLOW_COPY_AND_ASSIGN(plKrautRenderer);
16
17public:
20
21 // plRenderer implementation
22 virtual void GetSupportedRenderDataTypes(plHybridArray<const plRTTI*, 8>& ref_types) const override;
23 virtual void GetSupportedRenderDataCategories(plHybridArray<plRenderData::Category, 8>& ref_categories) const override;
24 virtual void RenderBatch(const plRenderViewContext& renderContext, const plRenderPipelinePass* pPass, const plRenderDataBatch& batch) const override;
25
26protected:
27 virtual void FillPerInstanceData(const plVec3& vLodCamPos, plArrayPtr<plPerInstanceData> instanceData, const plRenderDataBatch& batch, bool bIsShadowView, plUInt32 uiStartIndex, plUInt32& out_uiFilteredCount) const;
28
30 {
31 TempTreeCB(plRenderContext* pRenderContext);
33
34 void SetTreeData(const plVec3& vTreeCenter, float fLeafShadowOffset);
35
37 plConstantBufferStorageHandle m_hConstantBuffer;
38 };
39};
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
Definition ConstantBufferStorage.h:54
Definition ConstantBufferStorage.h:34
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Implements rendering of static meshes.
Definition KrautRenderer.h:13
Definition RenderContext.h:30
Definition RenderDataBatch.h:6
Definition RenderPipelinePass.h:26
This is the base class for types that handle rendering of different object types.
Definition Renderer.h:9
Definition KrautRenderer.h:30
Definition Declarations.h:51