// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" namespace Insights { struct FGraphConfig { FString Title; // the name of the graph FString StatString; // the stats to include FString IgnoreStats; // the stats to exclude FString HideStatPrefix; // the graph series will be named excluding the specified stat prefix FString MainStat; // the main stat (for stacked graph) FString ShowEvents; // ?? uint32 MaxHierarchyDepth = 4; // ?? bool bStacked = false; // if graph series are stacked or not bool bRequiresDetailedStats = false; // ?? bool bShowAverages = false; bool bSmooth = false; // ?? bool bVSync = false; // ?? double LegendAverageThreshold = 0.0; // ?? double SmoothKernelSize = -1.0; // ?? double SmoothKernelPercent = 1.0; // ?? double Thickness = 100.0; // ?? double Compression = 0.05; // ?? float Width = 1800.0f; // the width of the graph float Height = 600.0f; // the height of the graph double MinY = 0.0; // min vertical value double MaxY = 0.0; // max vertical value double Budget = 0.0; // budget }; struct FGraphGroupConfig { FString Name; TArray Graphs; }; struct FReportSummaryTableConfig { FString Name; FString RowSort; FString Filter; }; struct FReportTypeSummaryConfig { FString Type; // TODO: float Fps; // TODO: float HitchThreshold; // TODO: bool bUseEngineHitchMetric; FString Stats; // // TODO: [] const FReportSummaryTableConfig* SummaryTable = nullptr; // valid only until the FReportConfig is further changed }; struct FReportTypeGraphConfig { FString Title; double Budget = 0.0; bool bInSummary = false; // ?? bool bInMainSummary = false; // ?? const FGraphConfig* GraphConfig = nullptr; // valid only until the FReportConfig is further changed }; struct FReportTypeConfig { FString Name; FString Title; FString IgnoreList; // ?? bool bVSync = false; // ?? // TODO: FString MetadataToShow; // ?? TArray Summaries; TArray Graphs; FReportTypeConfig() = default; private: FReportTypeConfig(const FReportTypeConfig&) = delete; }; struct FReportConfig { // TODO: // TODO: TArray SummaryTables; TArray GraphGroups; TArray ReportTypes; FReportConfig() = default; private: FReportConfig(const FReportConfig&) = delete; }; } // namespace Insights