/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/RendererCore/AnimationSystem/AnimGraph/Implementation/AnimGraphResource.cpp
101 строка
3 KB
Jan Krassnigg
Introduced attribute to mark properties as required (#1981)
09 июл 2026, 19:48
Не верифицирован
09 июл 2026, 19:48
111b7a7
Код
Авторство
О чём код?
#include <RendererCore/RendererCorePCH.h> #include <Foundation/IO/MemoryStream.h> #include <Foundation/IO/Stream.h> #include <Foundation/Utilities/AssetFileHeader.h> #include <RendererCore/AnimationSystem/AnimGraph/AnimGraph.h> #include <RendererCore/AnimationSystem/AnimGraph/AnimGraphNode.h> #include <RendererCore/AnimationSystem/AnimGraph/AnimGraphResource.h> #include <RendererCore/AnimationSystem/AnimationClipResource.h> // clang-format off EZ_BEGIN_DYNAMIC_REFLECTED_TYPE(ezAnimationClipMapping, 1, ezRTTIDefaultAllocator<ezAnimationClipMapping>) { EZ_BEGIN_PROPERTIES { EZ_ACCESSOR_PROPERTY("ClipName", GetClipName, SetClipName)->AddAttributes(new ezDynamicStringEnumAttribute("AnimationClipMappingEnum")), EZ_RESOURCE_MEMBER_PROPERTY("Clip", m_hClip)->AddAttributes(new ezAssetBrowserAttribute("CompatibleAsset_Keyframe_Animation"), new ezRequiredAttribute()), } EZ_END_PROPERTIES; } EZ_END_DYNAMIC_REFLECTED_TYPE; EZ_BEGIN_DYNAMIC_REFLECTED_TYPE(ezAnimGraphResource, 1, ezRTTIDefaultAllocator<ezAnimGraphResource>) EZ_END_DYNAMIC_REFLECTED_TYPE; EZ_RESOURCE_IMPLEMENT_COMMON_CODE(ezAnimGraphResource); // clang-format on ezAnimGraphResource::ezAnimGraphResource() : ezResource(ezResource::DoUpdate::OnAnyThread, 0) { } ezAnimGraphResource::~ezAnimGraphResource() = default; ezResourceLoadDesc ezAnimGraphResource::UnloadData(Unload WhatToUnload) { ezResourceLoadDesc d; d.m_State = ezResourceState::Unloaded; d.m_uiQualityLevelsDiscardable = 0; d.m_uiQualityLevelsLoadable = 0; return d; } ezResourceLoadDesc ezAnimGraphResource::UpdateContent(ezStreamReader* Stream) { ezResourceLoadDesc res; res.m_uiQualityLevelsDiscardable = 0; res.m_uiQualityLevelsLoadable = 0; if (Stream == nullptr) { res.m_State = ezResourceState::LoadedResourceMissing; return res; } // the standard file reader writes the absolute file path into the stream ezStringBuilder sAbsFilePath; (*Stream) >> sAbsFilePath; ezAssetFileHeader AssetHash; AssetHash.Read(*Stream).AssertSuccess(); { const auto uiVersion = Stream->ReadVersion(2); Stream->ReadArray(m_IncludeGraphs).AssertSuccess(); if (uiVersion >= 2) { ezUInt32 uiNum = 0; *Stream >> uiNum; m_AnimationClipMapping.SetCount(uiNum); for (ezUInt32 i = 0; i < uiNum; ++i) { *Stream >> m_AnimationClipMapping[i].m_sClipName; *Stream >> m_AnimationClipMapping[i].m_hClip; } } } if (m_AnimGraph.Deserialize(*Stream).Failed()) { res.m_State = ezResourceState::LoadedResourceMissing; return res; } m_AnimGraph.PrepareForUse(); res.m_State = ezResourceState::Loaded; return res; } void ezAnimGraphResource::UpdateMemoryUsage(MemoryUsage& out_NewMemoryUsage) { out_NewMemoryUsage.m_uiMemoryGPU = 0; out_NewMemoryUsage.m_uiMemoryCPU = 0; } EZ_STATICLINK_FILE(RendererCore, RendererCore_AnimationSystem_AnimGraph_Implementation_AnimGraphResource);