/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/EnginePlugins/InspectorPlugin/ResourceManager.cpp
116 строк
4 KB
Ingrater
Clang-format fixes and update to 18.1.1 (#1234)
10 мар 2024, 15:51
Не верифицирован
10 мар 2024, 15:51
2f16acf
Код
Авторство
О чём код?
#include <InspectorPlugin/InspectorPluginPCH.h> #include <Core/ResourceManager/Resource.h> #include <Core/ResourceManager/ResourceManager.h> #include <Foundation/Communication/Telemetry.h> namespace ResourceManagerDetail { static void SendFullResourceInfo(const ezResource* pRes) { ezTelemetryMessage Msg; Msg.SetMessageID('RESM', ' SET'); Msg.GetWriter() << pRes->GetResourceIDHash(); Msg.GetWriter() << pRes->GetResourceID(); Msg.GetWriter() << pRes->GetDynamicRTTI()->GetTypeName(); Msg.GetWriter() << static_cast<ezUInt8>(pRes->GetPriority()); Msg.GetWriter() << static_cast<ezUInt8>(pRes->GetBaseResourceFlags().GetValue()); Msg.GetWriter() << static_cast<ezUInt8>(pRes->GetLoadingState()); Msg.GetWriter() << pRes->GetNumQualityLevelsDiscardable(); Msg.GetWriter() << pRes->GetNumQualityLevelsLoadable(); Msg.GetWriter() << pRes->GetMemoryUsage().m_uiMemoryCPU; Msg.GetWriter() << pRes->GetMemoryUsage().m_uiMemoryGPU; Msg.GetWriter() << pRes->GetResourceDescription(); ezTelemetry::Broadcast(ezTelemetry::Reliable, Msg); } static void SendSmallResourceInfo(const ezResource* pRes) { ezTelemetryMessage Msg; Msg.SetMessageID('RESM', 'UPDT'); Msg.GetWriter() << pRes->GetResourceIDHash(); Msg.GetWriter() << static_cast<ezUInt8>(pRes->GetPriority()); Msg.GetWriter() << static_cast<ezUInt8>(pRes->GetBaseResourceFlags().GetValue()); Msg.GetWriter() << static_cast<ezUInt8>(pRes->GetLoadingState()); Msg.GetWriter() << pRes->GetNumQualityLevelsDiscardable(); Msg.GetWriter() << pRes->GetNumQualityLevelsLoadable(); Msg.GetWriter() << pRes->GetMemoryUsage().m_uiMemoryCPU; Msg.GetWriter() << pRes->GetMemoryUsage().m_uiMemoryGPU; ezTelemetry::Broadcast(ezTelemetry::Reliable, Msg); } static void SendDeleteResourceInfo(const ezResource* pRes) { ezTelemetryMessage Msg; Msg.SetMessageID('RESM', ' DEL'); Msg.GetWriter() << pRes->GetResourceIDHash(); ezTelemetry::Broadcast(ezTelemetry::Reliable, Msg); } static void SendAllResourceTelemetry() { ezResourceManager::BroadcastExistsEvent(); } static void TelemetryEventsHandler(const ezTelemetry::TelemetryEventData& e) { switch (e.m_EventType) { case ezTelemetry::TelemetryEventData::ConnectedToClient: SendAllResourceTelemetry(); break; default: break; } } static void ResourceManagerEventHandler(const ezResourceEvent& e) { if (!ezTelemetry::IsConnectedToClient()) return; switch (e.m_Type) { case ezResourceEvent::Type::ResourceCreated: case ezResourceEvent::Type::ResourceExists: SendFullResourceInfo(e.m_pResource); return; case ezResourceEvent::Type::ResourceDeleted: SendDeleteResourceInfo(e.m_pResource); return; case ezResourceEvent::Type::ResourceContentUpdated: case ezResourceEvent::Type::ResourceContentUnloading: case ezResourceEvent::Type::ResourcePriorityChanged: SendSmallResourceInfo(e.m_pResource); return; default: EZ_ASSERT_NOT_IMPLEMENTED; } } } // namespace ResourceManagerDetail void AddResourceManagerEventHandler() { ezTelemetry::AddEventHandler(ResourceManagerDetail::TelemetryEventsHandler); ezResourceManager::GetResourceEvents().AddEventHandler(ResourceManagerDetail::ResourceManagerEventHandler); } void RemoveResourceManagerEventHandler() { ezResourceManager::GetResourceEvents().RemoveEventHandler(ResourceManagerDetail::ResourceManagerEventHandler); ezTelemetry::RemoveEventHandler(ResourceManagerDetail::TelemetryEventsHandler); }