/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
v4
Projects/InspectorPlugin/Plugins.cpp
76 строк
2 KB
jankrassnigg
Milestone 4
27 мар 2014, 19:08
27 мар 2014, 19:08
bfef15a
Код
Авторство
О чём код?
#include <PCH.h> #include <Foundation/Communication/Telemetry.h> #include <Foundation/Configuration/Plugin.h> static void SendPluginTelemetry() { if (!ezTelemetry::IsConnectedToClient()) return; ezTelemetry::Broadcast(ezTelemetry::Reliable, 'PLUG', 'CLR', NULL, 0); ezPlugin* pSub = ezPlugin::GetFirstInstance(); while (pSub) { ezTelemetryMessage msg; msg.SetMessageID('PLUG', 'DATA'); msg.GetWriter() << pSub->GetPluginName(); msg.GetWriter() << pSub->IsReloadable(); ezStringBuilder s; ezInt32 iDep = 0; while (pSub->GetPluginDependency(iDep) != NULL) { if (!s.IsEmpty()) s.Append(" | "); s.Append(pSub->GetPluginDependency(iDep)); ++iDep; } msg.GetWriter() << s.GetData(); ezTelemetry::Broadcast(ezTelemetry::Reliable, msg); pSub = pSub->GetNextInstance(); } } static void TelemetryEventsHandler(const ezTelemetry::TelemetryEventData& e) { switch (e.m_EventType) { case ezTelemetry::TelemetryEventData::ConnectedToClient: SendPluginTelemetry(); break; } } static void PluginEventHandler(const ezPlugin::PluginEvent& e) { switch (e.m_EventType) { case ezPlugin::PluginEvent::AfterPluginChanges: SendPluginTelemetry(); break; } } void AddPluginEventHandler() { ezTelemetry::AddEventHandler(TelemetryEventsHandler); ezPlugin::s_PluginEvents.AddEventHandler(PluginEventHandler); } void RemovePluginEventHandler() { ezPlugin::s_PluginEvents.RemoveEventHandler(PluginEventHandler); ezTelemetry::RemoveEventHandler(TelemetryEventsHandler); } EZ_STATICLINK_FILE(InspectorPlugin, InspectorPlugin_Plugins);