/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/RendererCore/Meshes/Implementation/CpuMeshResource.cpp
88 строк
2 KB
Jan Krassnigg
Added ezRandomPrefabComponent (#1434)
21 ноя 2024, 23:05
Не верифицирован
21 ноя 2024, 23:05
fd1dc94
Код
Авторство
О чём код?
#include <RendererCore/RendererCorePCH.h> #include <Foundation/Utilities/AssetFileHeader.h> #include <RendererCore/Meshes/CpuMeshResource.h> // clang-format off EZ_BEGIN_DYNAMIC_REFLECTED_TYPE(ezCpuMeshResource, 1, ezRTTIDefaultAllocator<ezCpuMeshResource>) EZ_END_DYNAMIC_REFLECTED_TYPE; EZ_RESOURCE_IMPLEMENT_COMMON_CODE(ezCpuMeshResource); // clang-format on ezCpuMeshResource::ezCpuMeshResource() : ezResource(DoUpdate::OnAnyThread, 1) { } ezResourceLoadDesc ezCpuMeshResource::UnloadData(Unload WhatToUnload) { ezResourceLoadDesc res; res.m_State = GetLoadingState(); res.m_uiQualityLevelsDiscardable = GetNumQualityLevelsDiscardable(); res.m_uiQualityLevelsLoadable = GetNumQualityLevelsLoadable(); // we currently can only unload the entire mesh // if (WhatToUnload == Unload::AllQualityLevels) { m_Descriptor.Clear(); res.m_uiQualityLevelsDiscardable = 0; res.m_uiQualityLevelsLoadable = 0; res.m_State = ezResourceState::Unloaded; } return res; } ezResourceLoadDesc ezCpuMeshResource::UpdateContent(ezStreamReader* Stream) { ezMeshResourceDescriptor desc; 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).IgnoreResult(); if (m_Descriptor.Load(*Stream).Failed()) { res.m_State = ezResourceState::LoadedResourceMissing; return res; } res.m_State = ezResourceState::Loaded; return res; } void ezCpuMeshResource::UpdateMemoryUsage(MemoryUsage& out_NewMemoryUsage) { out_NewMemoryUsage.m_uiMemoryCPU = sizeof(ezCpuMeshResource); out_NewMemoryUsage.m_uiMemoryGPU = 0; } EZ_RESOURCE_IMPLEMENT_CREATEABLE(ezCpuMeshResource, ezMeshResourceDescriptor) { m_Descriptor = descriptor; ezResourceLoadDesc res; res.m_uiQualityLevelsDiscardable = 0; res.m_uiQualityLevelsLoadable = 0; res.m_State = ezResourceState::Loaded; return res; } EZ_STATICLINK_FILE(RendererCore, RendererCore_Meshes_Implementation_CpuMeshResource);