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

35 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "IVisualLoggerProvider.h"
#include "Model/PointTimeline.h"
#include "Containers/Map.h"
#include "Templates/SharedPointer.h"
#include "VisualLogger/VisualLoggerTypes.h"
namespace TraceServices { class IAnalysisSession; }
class FVisualLoggerProvider : public IVisualLoggerProvider
{
public:
static FName ProviderName;
explicit FVisualLoggerProvider(TraceServices::IAnalysisSession& InSession);
/** IVisualLoggerProvider interface */
virtual bool ReadVisualLogEntryTimeline(uint64 InObjectId, TFunctionRef<void(const VisualLogEntryTimeline&)> Callback) const;
virtual void EnumerateCategories(TFunctionRef<void(const FName&)> Callback) const override;
/** Add an object event message */
void AppendVisualLogEntry(uint64 InObjectId, double InTime, const FVisualLogEntry& Entry);
private:
TraceServices::IAnalysisSession& Session;
TMap<uint64, uint32> ObjectIdToLogEntryTimelines;
TArray<TSharedRef<TraceServices::TPointTimeline<FVisualLogEntry>>> LogEntryTimelines;
TArray<FName> Categories;
};