Plasma Engine  2.0
Loading...
Searching...
No Matches
SkinnedMeshComponent.h
1#pragma once
2
3#include <RendererCore/Meshes/MeshComponentBase.h>
4#include <RendererFoundation/Shader/Types.h>
5#include <memory>
6
8
9class PL_RENDERERCORE_DLL plSkinnedMeshRenderData : public plMeshRenderData
10{
11 PL_ADD_DYNAMIC_REFLECTION(plSkinnedMeshRenderData, plMeshRenderData);
12
13public:
14 virtual void FillBatchIdAndSortingKey() override;
15 plGALBufferHandle m_hSkinningTransforms;
16 plArrayPtr<const plUInt8> m_pNewSkinningTransformData;
17 std::shared_ptr<bool> m_bTransformsUpdated;
18};
19
20struct PL_RENDERERCORE_DLL plSkinningState
21{
24
25 void Clear();
26
29
31 void TransformsChanged();
32
33 void FillSkinnedMeshRenderData(plSkinnedMeshRenderData& ref_renderData) const;
34
35private:
36 plGALBufferHandle m_hGpuBuffer;
37 std::shared_ptr<bool> m_bTransformsUpdated[2];
38};
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
Definition DynamicArray.h:81
Definition RendererFoundationDLL.h:418
Definition MeshComponentBase.h:13
A wrapper class that converts a plTransform into the correct data layout for shaders.
Definition Types.h:35
Definition SkinnedMeshComponent.h:10
Definition SkinnedMeshComponent.h:21
plDynamicArray< plShaderTransform, plAlignedAllocatorWrapper > m_Transforms
Holds the current CPU-side copy of the skinning matrices. Modify these and call TransformsChanged() t...
Definition SkinnedMeshComponent.h:28