/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/RendererCore/Utils/Implementation/BlackboardTemplateResource.cpp
97 строк
3 KB
C-Core
Render Pipeline Blackboards (#1974)
06 июл 2026, 13:55
Не верифицирован
06 июл 2026, 13:55
5715bdc
Код
Авторство
О чём код?
#include <RendererCore/RendererCorePCH.h> #include <Foundation/Utilities/AssetFileHeader.h> #include <RendererCore/Utils/BlackboardTemplateResource.h> // clang-format off EZ_BEGIN_DYNAMIC_REFLECTED_TYPE(ezBlackboardTemplateResource, 1, ezRTTIDefaultAllocator<ezBlackboardTemplateResource>) EZ_END_DYNAMIC_REFLECTED_TYPE; EZ_RESOURCE_IMPLEMENT_COMMON_CODE(ezBlackboardTemplateResource); // clang-format on ezBlackboardTemplateResource::ezBlackboardTemplateResource() : ezResource(DoUpdate::OnAnyThread, 1) { } ezBlackboardTemplateResource::~ezBlackboardTemplateResource() = default; ezResourceLoadDesc ezBlackboardTemplateResource::UnloadData(Unload WhatToUnload) { ezResourceLoadDesc res; res.m_uiQualityLevelsDiscardable = 0; res.m_uiQualityLevelsLoadable = 0; res.m_State = ezResourceState::Unloaded; return res; } ezResourceLoadDesc ezBlackboardTemplateResource::UpdateContent(ezStreamReader* Stream) { EZ_LOG_BLOCK("ezBlackboardTemplateResource::UpdateContent", GetResourceIdOrDescription()); 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; // skip the asset file header at the start of the file ezAssetFileHeader AssetHash; AssetHash.Read(*Stream).IgnoreResult(); ezBlackboardTemplateResourceDescriptor desc; if (desc.Deserialize(*Stream).Failed()) { res.m_State = ezResourceState::LoadedResourceMissing; return res; } CreateResource(std::move(desc)); res.m_State = ezResourceState::Loaded; return res; } void ezBlackboardTemplateResource::UpdateMemoryUsage(MemoryUsage& out_NewMemoryUsage) { out_NewMemoryUsage.m_uiMemoryGPU = 0; out_NewMemoryUsage.m_uiMemoryCPU = sizeof(ezBlackboardTemplateResource); out_NewMemoryUsage.m_uiMemoryCPU += m_Descriptor.m_Entries.GetHeapMemoryUsage(); } EZ_RESOURCE_IMPLEMENT_CREATEABLE(ezBlackboardTemplateResource, ezBlackboardTemplateResourceDescriptor) { m_Descriptor = std::move(descriptor); ezResourceLoadDesc res; res.m_uiQualityLevelsDiscardable = 0; res.m_uiQualityLevelsLoadable = 0; res.m_State = ezResourceState::Loaded; return res; } ezResult ezBlackboardTemplateResourceDescriptor::Serialize(ezStreamWriter& inout_stream) const { EZ_SUCCEED_OR_RETURN(inout_stream.WriteArray(m_Entries)); return EZ_SUCCESS; } ezResult ezBlackboardTemplateResourceDescriptor::Deserialize(ezStreamReader& inout_stream) { EZ_SUCCEED_OR_RETURN(inout_stream.ReadArray(m_Entries)); return EZ_SUCCESS; } EZ_STATICLINK_FILE(RendererCore, RendererCore_Utils_Implementation_BlackboardTemplateResource);