You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Add options to the Insights Status Bar Widget
#rb Ionut.Matasaru #jira UE-161773 #preflight 636e5b00ee4d25f90af1325a [CL 23097615 by Catalin Dragoiu in ue5-main branch]
This commit is contained in:
@@ -80,25 +80,26 @@ enum class ETraceConnectType
|
||||
class FTraceAuxiliaryImpl
|
||||
{
|
||||
public:
|
||||
const TCHAR* GetDest() const;
|
||||
bool IsConnected() const;
|
||||
void GetActiveChannelsString(FStringBuilderBase& String) const;
|
||||
void AddCommandlineChannels(const TCHAR* ChannelList);
|
||||
void ResetCommandlineChannels();
|
||||
bool HasCommandlineChannels() const { return !CommandlineChannels.IsEmpty(); }
|
||||
void EnableChannels(const TCHAR* ChannelList);
|
||||
void DisableChannels(const TCHAR* ChannelList);
|
||||
bool Connect(ETraceConnectType Type, const TCHAR* Parameter, const FTraceAuxiliary::FLogCategoryAlias& LogCategory);
|
||||
bool Stop();
|
||||
void ResumeChannels();
|
||||
void PauseChannels();
|
||||
void EnableCommandlineChannels();
|
||||
void EnableCommandlineChannelsPostInitialize();
|
||||
void SetTruncateFile(bool bTruncateFile);
|
||||
void UpdateCsvStats() const;
|
||||
void StartWorkerThread();
|
||||
void StartEndFramePump();
|
||||
bool WriteSnapshot(const TCHAR* InFilePath, const FTraceAuxiliary::FLogCategoryAlias& LogCategory);
|
||||
const TCHAR* GetDest() const;
|
||||
bool IsConnected() const;
|
||||
FTraceAuxiliary::EConnectionType GetConnectionType() const;
|
||||
void GetActiveChannelsString(FStringBuilderBase& String) const;
|
||||
void AddCommandlineChannels(const TCHAR* ChannelList);
|
||||
void ResetCommandlineChannels();
|
||||
bool HasCommandlineChannels() const { return !CommandlineChannels.IsEmpty(); }
|
||||
void EnableChannels(const TCHAR* ChannelList);
|
||||
void DisableChannels(const TCHAR* ChannelList);
|
||||
bool Connect(ETraceConnectType Type, const TCHAR* Parameter, const FTraceAuxiliary::FLogCategoryAlias& LogCategory);
|
||||
bool Stop();
|
||||
void ResumeChannels();
|
||||
void PauseChannels();
|
||||
void EnableCommandlineChannels();
|
||||
void EnableCommandlineChannelsPostInitialize();
|
||||
void SetTruncateFile(bool bTruncateFile);
|
||||
void UpdateCsvStats() const;
|
||||
void StartWorkerThread();
|
||||
void StartEndFramePump();
|
||||
bool WriteSnapshot(const TCHAR* InFilePath, const FTraceAuxiliary::FLogCategoryAlias& LogCategory);
|
||||
|
||||
// True if this is parent process with forking requested before forking.
|
||||
bool IsParentProcessAndPreFork();
|
||||
@@ -112,28 +113,28 @@ private:
|
||||
|
||||
struct FChannelEntry
|
||||
{
|
||||
FString Name;
|
||||
bool bActive = false;
|
||||
FString Name;
|
||||
bool bActive = false;
|
||||
};
|
||||
|
||||
void AddChannel(const TCHAR* Name);
|
||||
void RemoveChannel(const TCHAR* Name);
|
||||
void AddChannel(const TCHAR* Name);
|
||||
void RemoveChannel(const TCHAR* Name);
|
||||
template <class T> void ForEachChannel(const TCHAR* ChannelList, bool bResolvePresets, T Callable);
|
||||
static uint32 HashChannelName(const TCHAR* Name);
|
||||
bool EnableChannel(const TCHAR* Channel);
|
||||
void DisableChannel(const TCHAR* Channel);
|
||||
bool SendToHost(const TCHAR* Host, const FTraceAuxiliary::FLogCategoryAlias& LogCategory);
|
||||
bool WriteToFile(const TCHAR* Path, const FTraceAuxiliary::FLogCategoryAlias& LogCategory);
|
||||
bool FinalizeFilePath(const TCHAR* InPath, FString& OutPath, const FTraceAuxiliary::FLogCategoryAlias& LogCategory);
|
||||
static uint32 HashChannelName(const TCHAR* Name);
|
||||
bool EnableChannel(const TCHAR* Channel);
|
||||
void DisableChannel(const TCHAR* Channel);
|
||||
bool SendToHost(const TCHAR* Host, const FTraceAuxiliary::FLogCategoryAlias& LogCategory);
|
||||
bool WriteToFile(const TCHAR* Path, const FTraceAuxiliary::FLogCategoryAlias& LogCategory);
|
||||
bool FinalizeFilePath(const TCHAR* InPath, FString& OutPath, const FTraceAuxiliary::FLogCategoryAlias& LogCategory);
|
||||
|
||||
typedef TMap<uint32, FChannelEntry, TInlineSetAllocator<128>> ChannelSet;
|
||||
ChannelSet CommandlineChannels;
|
||||
FString TraceDest;
|
||||
FTraceAuxiliary::EConnectionType TraceType = FTraceAuxiliary::EConnectionType::None;
|
||||
std::atomic<EState> State = EState::Stopped;
|
||||
bool bTruncateFile = false;
|
||||
bool bWorkerThreadStarted = false;
|
||||
FString PausedPreset;
|
||||
ChannelSet CommandlineChannels;
|
||||
FString TraceDest;
|
||||
std::atomic<FTraceAuxiliary::EConnectionType> TraceType = FTraceAuxiliary::EConnectionType::None;
|
||||
std::atomic<EState> State = EState::Stopped;
|
||||
bool bTruncateFile = false;
|
||||
bool bWorkerThreadStarted = false;
|
||||
FString PausedPreset;
|
||||
};
|
||||
|
||||
static FTraceAuxiliaryImpl GTraceAuxiliary;
|
||||
@@ -291,7 +292,7 @@ bool FTraceAuxiliaryImpl::Connect(ETraceConnectType Type, const TCHAR* Parameter
|
||||
UE_LOG_REF(LogCategory, Error, TEXT("Trace failed to connect (trace server: %s)!"), Parameter ? Parameter : TEXT(""));
|
||||
}
|
||||
|
||||
TraceType = FTraceAuxiliary::EConnectionType::Network;
|
||||
TraceType.store(FTraceAuxiliary::EConnectionType::Network);
|
||||
}
|
||||
|
||||
else if (Type == ETraceConnectType::File)
|
||||
@@ -306,12 +307,12 @@ bool FTraceAuxiliaryImpl::Connect(ETraceConnectType Type, const TCHAR* Parameter
|
||||
UE_LOG_REF(LogCategory, Error, TEXT("Trace failed to connect (file: \"%s\")!"), Parameter ? Parameter : TEXT(""));
|
||||
}
|
||||
|
||||
TraceType = FTraceAuxiliary::EConnectionType::File;
|
||||
TraceType.store(FTraceAuxiliary::EConnectionType::File);
|
||||
}
|
||||
|
||||
if (bConnected)
|
||||
{
|
||||
FTraceAuxiliary::OnTraceStarted.Broadcast(TraceType, TraceDest);
|
||||
FTraceAuxiliary::OnTraceStarted.Broadcast(TraceType.load(), TraceDest);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,10 +338,10 @@ bool FTraceAuxiliaryImpl::Stop()
|
||||
return false;
|
||||
}
|
||||
|
||||
FTraceAuxiliary::OnTraceStopped.Broadcast(TraceType, TraceDest);
|
||||
FTraceAuxiliary::OnTraceStopped.Broadcast(TraceType.load(), TraceDest);
|
||||
|
||||
State.store(EState::Stopped);
|
||||
TraceType = FTraceAuxiliary::EConnectionType::None;
|
||||
TraceType.store(FTraceAuxiliary::EConnectionType::None);
|
||||
TraceDest.Reset();
|
||||
return true;
|
||||
}
|
||||
@@ -564,6 +565,7 @@ bool FTraceAuxiliaryImpl::WriteSnapshot(const TCHAR* InFilePath, const FTraceAux
|
||||
|
||||
if (bResult)
|
||||
{
|
||||
FTraceAuxiliary::OnSnapshotSaved.Broadcast(NativePath);
|
||||
UE_LOG_REF(LogCategory, Display, TEXT("Trace snapshot generated in %.3f seconds to \"%s\"."), FPlatformTime::Seconds() - StartTime, *NativePath);
|
||||
}
|
||||
else
|
||||
@@ -586,6 +588,12 @@ bool FTraceAuxiliaryImpl::IsConnected() const
|
||||
return State.load() == EState::Tracing;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
FTraceAuxiliary::EConnectionType FTraceAuxiliaryImpl::GetConnectionType() const
|
||||
{
|
||||
return TraceType.load();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
void FTraceAuxiliaryImpl::GetActiveChannelsString(FStringBuilderBase& String) const
|
||||
{
|
||||
@@ -1265,6 +1273,7 @@ static bool StartFromCommandlineArguments(const TCHAR* CommandLine, bool& bOutSt
|
||||
FTraceAuxiliary::FOnConnection FTraceAuxiliary::OnConnection;
|
||||
FTraceAuxiliary::FOnTraceStarted FTraceAuxiliary::OnTraceStarted;
|
||||
FTraceAuxiliary::FOnTraceStopped FTraceAuxiliary::OnTraceStopped;
|
||||
FTraceAuxiliary::FOnSnapshotSaved FTraceAuxiliary::OnSnapshotSaved;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
bool FTraceAuxiliary::Start(EConnectionType Type, const TCHAR* Target, const TCHAR* Channels, FOptions* Options, const FLogCategoryAlias& LogCategory)
|
||||
@@ -1596,6 +1605,14 @@ bool FTraceAuxiliary::IsConnected()
|
||||
return false;
|
||||
}
|
||||
|
||||
FTraceAuxiliary::EConnectionType FTraceAuxiliary::GetConnectionType()
|
||||
{
|
||||
#if UE_TRACE_ENABLED
|
||||
return GTraceAuxiliary.GetConnectionType();
|
||||
#endif
|
||||
return FTraceAuxiliary::EConnectionType::None;
|
||||
}
|
||||
|
||||
void FTraceAuxiliary::GetActiveChannelsString(FStringBuilderBase& String)
|
||||
{
|
||||
#if UE_TRACE_ENABLED
|
||||
|
||||
@@ -55,6 +55,12 @@ public:
|
||||
*/
|
||||
DECLARE_TS_MULTICAST_DELEGATE_TwoParams(FOnTraceStopped, FTraceAuxiliary::EConnectionType TraceType, const FString& TraceDestination);
|
||||
|
||||
/**
|
||||
* Callback whenever a trace snapshot is saved.
|
||||
* Path is the file system path of the snapshot file.
|
||||
*/
|
||||
DECLARE_TS_MULTICAST_DELEGATE_OneParam(FOnSnapshotSaved, const FString& Path);
|
||||
|
||||
struct FOptions
|
||||
{
|
||||
/** When set, trace will not start a worker thread, instead it is updated from end frame delegate. */
|
||||
@@ -143,6 +149,11 @@ public:
|
||||
*/
|
||||
static bool IsConnected();
|
||||
|
||||
/**
|
||||
* Returns the current connection type.
|
||||
*/
|
||||
static EConnectionType GetConnectionType();
|
||||
|
||||
/**
|
||||
* Adds a comma separated list of currently active channels to the passed in StringBuilder
|
||||
*/
|
||||
@@ -174,5 +185,11 @@ public:
|
||||
* The type of recording and the destination (filepath or network) is passed to the delegate.
|
||||
*/
|
||||
static FOnTraceStopped OnTraceStopped;
|
||||
|
||||
/**
|
||||
* Delegate that triggers when a snapshot has been saved.
|
||||
* The path to the snapshot file is passed to the delegate.
|
||||
*/
|
||||
static FOnSnapshotSaved OnSnapshotSaved;
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user