Plasma Engine  2.0
Loading...
Searching...
No Matches
MeshRenderer.h
1#pragma once
2
3#include <RendererCore/Pipeline/Renderer.h>
4
6struct plPerInstanceData;
7
9class PL_RENDERERCORE_DLL plMeshRenderer : public plRenderer
10{
11 PL_ADD_DYNAMIC_REFLECTION(plMeshRenderer, plRenderer);
12 PL_DISALLOW_COPY_AND_ASSIGN(plMeshRenderer);
13
14public:
17
18 // plRenderer implementation
19 virtual void GetSupportedRenderDataTypes(plHybridArray<const plRTTI*, 8>& ref_types) const override;
20 virtual void GetSupportedRenderDataCategories(plHybridArray<plRenderData::Category, 8>& ref_categories) const override;
21 virtual void RenderBatch(
22 const plRenderViewContext& renderContext, const plRenderPipelinePass* pPass, const plRenderDataBatch& batch) const override;
23
24protected:
25 virtual void SetAdditionalData(const plRenderViewContext& renderViewContext, const plMeshRenderData* pRenderData) const;
26 virtual void FillPerInstanceData(
27 plArrayPtr<plPerInstanceData> instanceData, const plRenderDataBatch& batch, plUInt32 uiStartIndex, plUInt32& out_uiFilteredCount) const;
28};
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Definition MeshComponentBase.h:13
Implements rendering of static meshes.
Definition MeshRenderer.h:10
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 Declarations.h:51