Files
UnrealEngine/Engine/Plugins/Animation/GameplayInsights/Source/RewindDebugger/Private/RewindDebuggerObjectTrack.h
2025-05-18 13:04:45 +08:00

77 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "RewindDebuggerTrack.h"
#include "SEventTimelineView.h"
namespace RewindDebugger
{
class IRewindDebuggerTrackCreator;
struct FTrackCreatorAndTrack
{
const IRewindDebuggerTrackCreator* Creator;
TSharedPtr<FRewindDebuggerTrack> Track;
};
class FRewindDebuggerObjectTrack : public FRewindDebuggerTrack
{
public:
FRewindDebuggerObjectTrack(const FObjectId& InObjectId, const FString& InObjectName, bool bInAddController = false);
TSharedPtr<SEventTimelineView::FTimelineEventData> GetExistenceRange() const
{
return ExistenceRange;
}
private:
virtual TSharedPtr<SWidget> GetTimelineViewInternal() override;
virtual bool UpdateInternal() override;
virtual void IterateSubTracksInternal(TFunction<void(TSharedPtr<FRewindDebuggerTrack> SubTrack)> IteratorFunction) override;
virtual FName GetNameInternal() const override
{
return "";
}
virtual FSlateIcon GetIconInternal() override
{
return Icon;
}
virtual FText GetDisplayNameInternal() const override;
virtual uint64 GetObjectIdInternal() const override
{
return ObjectId.GetMainId();
}
virtual uint64 GetChildElementIdInternal() const override
{
return ObjectId.GetChildElementId();
}
virtual bool HasDebugDataInternal() const override
{
return false;
}
virtual bool HandleDoubleClickInternal() override;
mutable FText DisplayName;
FString ObjectName;
FSlateIcon Icon;
TSharedPtr<SEventTimelineView::FTimelineEventData> ExistenceRange;
FObjectId ObjectId;
TArray<FTrackCreatorAndTrack> TrackChildren;
TArray<TSharedPtr<FRewindDebuggerTrack>> Children;
bool bAddController;
mutable bool bDisplayNameValid;
bool bIconSearched;
};
}