Plasma Engine  2.0
Loading...
Searching...
No Matches
PointRenderer.h
1#pragma once
2
3#include <ParticlePlugin/ParticlePluginDLL.h>
4#include <ParticlePlugin/Renderer/ParticleRenderer.h>
5#include <RendererCore/Pipeline/Declarations.h>
6#include <RendererCore/Pipeline/RenderData.h>
7
8#include <RendererCore/../../../Data/Base/Shaders/Particles/BillboardQuadParticleShaderData.h>
9
10class PL_PARTICLEPLUGIN_DLL plParticlePointRenderData final : public plRenderData
11{
12 PL_ADD_DYNAMIC_REFLECTION(plParticlePointRenderData, plRenderData);
13
14public:
15 plArrayPtr<plBaseParticleShaderData> m_BaseParticleData;
17 bool m_bApplyObjectTransform = true;
18 plTime m_TotalEffectLifeTime;
19};
20
22class PL_PARTICLEPLUGIN_DLL plParticlePointRenderer final : public plParticleRenderer
23{
24 PL_ADD_DYNAMIC_REFLECTION(plParticlePointRenderer, plParticleRenderer);
25 PL_DISALLOW_COPY_AND_ASSIGN(plParticlePointRenderer);
26
27public:
30
31 virtual void GetSupportedRenderDataTypes(plHybridArray<const plRTTI*, 8>& ref_types) const override;
32 virtual void RenderBatch(
33 const plRenderViewContext& renderContext, const plRenderPipelinePass* pPass, const plRenderDataBatch& batch) const override;
34
35protected:
36 static const plUInt32 s_uiParticlesPerBatch = 1024;
37 plGALBufferHandle m_hBaseDataBuffer;
38 plGALBufferHandle m_hBillboardDataBuffer;
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 RendererFoundationDLL.h:418
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Definition PointRenderer.h:11
Implements rendering of particle systems.
Definition PointRenderer.h:23
Implements rendering of particle systems.
Definition ParticleRenderer.h:16
Definition RenderDataBatch.h:6
Base class for all render data. Render data must contain all information that is needed to render the...
Definition RenderData.h:14
Definition RenderPipelinePass.h:26
Definition Declarations.h:51
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12