/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/RendererCore/Meshes/SkinnedMeshRenderData.h
40 строк
1 KB
C-Core
Render instance data refactor (#1713)
19 ноя 2025, 20:31
Не верифицирован
19 ноя 2025, 20:31
b8e6103
Код
Авторство
О чём код?
#pragma once #include <RendererCore/Meshes/MeshComponentBase.h> class ezShaderTransform; /// \brief Render data for skinned meshes. /// /// Extends mesh render data with a GPU buffer handle for bone transformation matrices. class EZ_RENDERERCORE_DLL ezSkinnedMeshRenderData : public ezMeshRenderData { EZ_ADD_DYNAMIC_REFLECTION(ezSkinnedMeshRenderData, ezMeshRenderData); public: virtual bool CanBatch(const ezRenderData& other) const override; ezGALDynamicBufferHandle m_hSkinningBuffer; }; /// \brief Manages the skinning state for an animated mesh. /// /// Wraps around the ezRenderDataManager functions to manage skinning data for skinned meshes. struct EZ_RENDERERCORE_DLL ezSkinningState { ezSkinningState(); ~ezSkinningState(); void Clear(); /// \brief Returns a writable array of bone transforms, allocating or reallocating the buffer as needed. Note that existing data is lost on reallocation. ezArrayPtr<ezShaderTransform> GetOrCreateBoneTransformsForWriting(ezComponent& ref_ownerComponent, ezUInt32 uiNumBones); ezArrayPtr<const ezShaderTransform> GetBoneTransformsForReading() const; bool HasBoneTransforms() const { return m_uiNumBones > 0; } ezCustomInstanceDataOffset m_DataOffset; ezUInt32 m_uiNumBones = 0; ezWorld* m_pWorld = nullptr; };