Files
UnrealEngineUWP/Engine/Source/Editor/RewindDebuggerInterface/Public/IRewindDebugger.h
keith yerex 93e6b4646c rewind debugger interfaces refactor
- moving interfaces to engine from plugins
- get rewind debugger debug view interface out of GameplayInsights plugin
- change view system to use modular features instead of having it's own registration management
[REVIEW] jurre.debaare

#ROBOMERGE-SOURCE: CL 16986089 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16986111 by keith yerex in ue5-release-engine-test branch]
2021-07-28 15:22:40 -04:00

62 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
// IRewindDebugger
//
// Public interface to rewind debugger
namespace TraceServices
{
class IAnalysisSession;
}
struct FDebugObjectInfo
{
FDebugObjectInfo(uint64 Id, const FString& Name): ObjectId(Id), ObjectName(Name), bExpanded(true)
{
}
uint64 ObjectId;
FString ObjectName;
bool bExpanded;
TArray<TSharedPtr<FDebugObjectInfo>> Children;
};
class REWINDDEBUGGERINTERFACE_API IRewindDebugger
{
public:
IRewindDebugger();
virtual ~IRewindDebugger();
// get the time the debugger is scrubbed to, in seconds since the capture started (or the recording duration while the game is running)
virtual double CurrentTraceTime() const = 0;
// get the current analysis session
virtual const TraceServices::IAnalysisSession* GetAnalysisSession() const = 0;
// get insights id for the selected target actor
virtual uint64 GetTargetActorId() const = 0;
// get a list of all components of the selected target actor (with the actor as the first element in the list)
virtual TArray<TSharedPtr<FDebugObjectInfo>>& GetDebugComponents() = 0;
// get posiotion of the selected target actor (returns true if position is valid)
virtual bool GetTargetActorPosition(FVector& OutPosition) const = 0;
// get the world that the debugger is replaying in
virtual UWorld* GetWorldToVisualize() const = 0;
// returns true if recording is active
virtual bool IsRecording() const = 0;
// returns true if PIE is running and not paused
virtual bool IsPIESimulating() const = 0;
// returns the length of the current recording
virtual double GetRecordingDuration() const = 0;
};