You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
71 lines
1.5 KiB
C++
71 lines
1.5 KiB
C++
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "PerfCounters.h"
|
|
|
|
class FPerfCountersModule : public IPerfCountersModule
|
|
{
|
|
private:
|
|
|
|
/** All created perf counter instances from this module */
|
|
FPerfCounters* PerfCountersSingleton;
|
|
|
|
public:
|
|
|
|
FPerfCountersModule() :
|
|
PerfCountersSingleton(NULL)
|
|
{}
|
|
|
|
void ShutdownModule()
|
|
{
|
|
if (PerfCountersSingleton)
|
|
{
|
|
delete PerfCountersSingleton;
|
|
PerfCountersSingleton = nullptr;
|
|
}
|
|
}
|
|
|
|
virtual bool SupportsDynamicReloading() override
|
|
{
|
|
return false;
|
|
}
|
|
|
|
virtual bool SupportsAutomaticShutdown() override
|
|
{
|
|
return false;
|
|
}
|
|
|
|
IPerfCounters* GetPerformanceCounters() const
|
|
{
|
|
return PerfCountersSingleton;
|
|
}
|
|
|
|
IPerfCounters* CreatePerformanceCounters(const FString& UniqueInstanceId) override
|
|
{
|
|
if (PerfCountersSingleton)
|
|
{
|
|
UE_LOG(LogPerfCounters, Display, TEXT("CreatePerformanceCounters: instance already exists, new instance not created."));
|
|
return PerfCountersSingleton;
|
|
}
|
|
|
|
FString InstanceUID = UniqueInstanceId;
|
|
if (InstanceUID.IsEmpty())
|
|
{
|
|
InstanceUID = FString::Printf(TEXT("perfcounters-of-pid-%d"), FPlatformProcess::GetCurrentProcessId());
|
|
}
|
|
|
|
FPerfCounters* PerfCounters = new FPerfCounters(InstanceUID);
|
|
if (!PerfCounters->Initialize())
|
|
{
|
|
UE_LOG(LogPerfCounters, Warning, TEXT("CreatePerformanceCounters: could not create perfcounters"));
|
|
delete PerfCounters;
|
|
return nullptr;
|
|
}
|
|
|
|
PerfCountersSingleton = PerfCounters;
|
|
return PerfCounters;
|
|
}
|
|
};
|
|
|
|
IMPLEMENT_MODULE(FPerfCountersModule, PerfCounters)
|
|
DEFINE_LOG_CATEGORY(LogPerfCounters);
|