Skip to content
Snippets Groups Projects
Commit ac2147ed authored by David Gilbert's avatar David Gilbert :bug:
Browse files

Added options in GUI to launch with Unreal Insight trace parameters.

parent f7838738
No related branches found
No related tags found
2 merge requests!9Update current master to develop,!54.26
......@@ -117,6 +117,60 @@ void FNDisplayLaunchButtonModule::PluginButtonClicked()
GEngine->AddOnScreenDebugMessage(-1, 3, FColor::White, TEXT("The Button is set to do nothing."));
return;
}
FString InsightParameters = "";
if(Settings->bEnableInsights)
{
if (Settings->bStatNamedEvents)
{
InsightParameters.Append("-statnamedevents");
}
FString TraceChannels = "";
if (Settings->bLog)
{
TraceChannels.Append("log,");
}
if (Settings->bBookmark)
{
TraceChannels.Append("bookmark,");
}
if (Settings->bFrame)
{
TraceChannels.Append("frame,");
}
if (Settings->bCPU)
{
TraceChannels.Append("cpu,");
}
if (Settings->bGPU)
{
TraceChannels.Append("gpu,");
}
if (Settings->bLoadTime)
{
TraceChannels.Append("loadtime,");
}
if (Settings->bFile)
{
TraceChannels.Append("file,");
}
if (Settings->bNet)
{
TraceChannels.Append("net,");
}
if (TraceChannels.Len() > 0)
{
// There's probably a better way of doing this...
TraceChannels.RemoveFromEnd(",");
InsightParameters.Append(" -trace=");
InsightParameters.Append(TraceChannels);
}
if (Settings->TracehostIP.Len() > 0)
{
InsightParameters.Append(" -tracehost=");
InsightParameters.Append(Settings->TracehostIP);
}
InsightParameters.RemoveFromStart(" ");
}
/* Disable Plugins temporarily */
if(!ChangePluginStateAndStoreConfig("SteamVR", false, SteamVRState)) return;
......@@ -140,7 +194,7 @@ void FNDisplayLaunchButtonModule::PluginButtonClicked()
if (Settings->StartDTrack) SendToDTrack(Settings->DTrackIP, Settings->DTrackPort, "dtrack2 tracking start\0");
if (Settings->SwitchProjector) ModeFromBefore = SwitchProjectorToState(Settings->ProjectorIP, Settings->ProjectorPort, Settings->ProjectorType);
FProcHandle Instance = FPlatformProcess::CreateProc(*GetEditorExecutableName(), *(Parameters + " " + Settings->ROLVLaunchParameters), true, false, false, nullptr, 0, nullptr, nullptr);
FProcHandle Instance = FPlatformProcess::CreateProc(*GetEditorExecutableName(), *(Parameters + " " + InsightParameters + " " + Settings->ROLVLaunchParameters), true, false, false, nullptr, 0, nullptr, nullptr);
FPlatformProcess::WaitForProc(Instance);
if (Settings->StartVRPN) FPlatformProcess::TerminateProc(VRPN);
......@@ -164,13 +218,13 @@ void FNDisplayLaunchButtonModule::PluginButtonClicked()
FProcHandle Processes[Num_Nodes];
for (int i = 0; i < Num_Nodes; i++)
{
Processes[i] = FPlatformProcess::CreateProc(*GetEditorExecutableName(), *(Parameters + " " + Windows_Node_Specific_Commands[i]), true, false, false, nullptr, 0, nullptr, nullptr);
Processes[i] = FPlatformProcess::CreateProc(*GetEditorExecutableName(), *(Parameters + " " + InsightParameters + " " + Windows_Node_Specific_Commands[i]), true, false, false, nullptr, 0, nullptr, nullptr);
}
FPlatformProcess::WaitForProc(Processes[0]); //wait for only one of them
}
else if (Settings->LaunchType == ButtonLaunchType_TWO_SCREEN)
{
const FString Parameters = FString::Printf(TEXT("\"%s\" -game dc_cfg=\"%s\" %s"),*FPaths::GetProjectFilePath(), *GetConfigPath("twoscreen"), *Settings->TwoScreenLaunchParameters);
const FString Parameters = FString::Printf(TEXT("\"%s\" -tracehost=127.0.0.1 -game dc_cfg=\"%s\" %s"),*FPaths::GetProjectFilePath(), *GetConfigPath("twoscreen"), *Settings->TwoScreenLaunchParameters);
const int Num_Nodes = 2;
FString Windows_Node_Specific_Commands[Num_Nodes] = {
......@@ -181,7 +235,7 @@ void FNDisplayLaunchButtonModule::PluginButtonClicked()
FProcHandle Processes[Num_Nodes];
for (int i = 0; i < Num_Nodes; i++)
{
Processes[i] = FPlatformProcess::CreateProc(*GetEditorExecutableName(), *(Parameters + " " + Windows_Node_Specific_Commands[i]), true, false, false, nullptr, 0, nullptr, nullptr);
Processes[i] = FPlatformProcess::CreateProc(*GetEditorExecutableName(), *(Parameters + " " + InsightParameters + " " + Windows_Node_Specific_Commands[i]), true, false, false, nullptr, 0, nullptr, nullptr);
}
FPlatformProcess::WaitForProc(Processes[0]); //wait for only one of them
}
......@@ -192,7 +246,8 @@ void FNDisplayLaunchButtonModule::PluginButtonClicked()
*("\"" + (FPaths::ConvertRelativePathToFull(".") + "/UE4Editor\"")
+ " " + FPaths::ConvertRelativePathToFull(FPaths::GetProjectFilePath())
+ " " + FString::FromInt(FEngineVersion::Current().GetMajor())
+ FString::FromInt(FEngineVersion::Current().GetMinor())),
+ FString::FromInt(FEngineVersion::Current().GetMinor())
+ InsightParameters), // Test this
true, false, false, nullptr, 0, nullptr, nullptr);
FPlatformProcess::WaitForProc(Instance);
}
......
......@@ -33,6 +33,9 @@ public:
UPROPERTY(EditAnywhere, config, Category = "General", meta = (DisplayName = "Start "))
TEnumAsByte<ButtonLaunchType> LaunchType = ButtonLaunchType_MiniCAVE;
UPROPERTY(EditAnywhere, config, Category = "General", meta = (DisplayName = "Unreal Insights "))
bool bEnableInsights = false;
/*
* TwoScreen Options
*/
......@@ -106,4 +109,37 @@ public:
FString DTrackIP;
UPROPERTY(EditAnywhere, config, Category = "General|ROLV|DTRACK", meta = (DisplayName = "DTrack Port", EditCondition="LaunchType==ButtonLaunchType::ButtonLaunchType_ROLV && StartDTrack"))
int DTrackPort = 50105;
/*
* Insights Options
*/
UPROPERTY(EditAnywhere, config, Category = "General|Insights", meta = (DisplayName = "statnamedevents", EditCondition = "bEnableInsights==true"))
bool bStatNamedEvents = true;
UPROPERTY(EditAnywhere, config, Category = "General|Insights|Trace Channels", meta = (DisplayName = "Log", EditCondition = "bEnableInsights==true"))
bool bLog = true;
UPROPERTY(EditAnywhere, config, Category = "General|Insights|Trace Channels", meta = (DisplayName = "Bookmark", EditCondition = "bEnableInsights==true"))
bool bBookmark = true;
UPROPERTY(EditAnywhere, config, Category = "General|Insights|Trace Channels", meta = (DisplayName = "Frame", EditCondition = "bEnableInsights==true"))
bool bFrame = true;
UPROPERTY(EditAnywhere, config, Category = "General|Insights|Trace Channels", meta = (DisplayName = "CPU", EditCondition = "bEnableInsights==true"))
bool bCPU = true;
UPROPERTY(EditAnywhere, config, Category = "General|Insights|Trace Channels", meta = (DisplayName = "GPU", EditCondition = "bEnableInsights==true"))
bool bGPU = true;
UPROPERTY(EditAnywhere, config, Category = "General|Insights|Trace Channels", meta = (DisplayName = "LoadTime", EditCondition = "bEnableInsights==true"))
bool bLoadTime = true;
UPROPERTY(EditAnywhere, config, Category = "General|Insights|Trace Channels", meta = (DisplayName = "File", EditCondition = "bEnableInsights==true"))
bool bFile = true;
UPROPERTY(EditAnywhere, config, Category = "General|Insights|Trace Channels", meta = (DisplayName = "Net", EditCondition = "bEnableInsights==true"))
bool bNet = true;
UPROPERTY(EditAnywhere, config, Category = "General|Insights|Tracehost", meta = (DisplayName = "Tracehost IP", EditCondition = "bEnableInsights==true"))
FString TracehostIP = "127.0.0.1";
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment