58 lines
1.3 KiB
C++
58 lines
1.3 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
#if STATS
|
|
|
|
#include "Stats/StatsFile.h"
|
|
#include "ProfilerStream.h"
|
|
#include "ProfilerSession.h"
|
|
|
|
class FRawProfilerSession
|
|
: public FProfilerSession
|
|
{
|
|
friend class FProfilerManager;
|
|
friend class FProfilerActionManager;
|
|
|
|
/** Profiler stream that contains all read raw profiler frames. */
|
|
FProfilerStream ProfilerStream;
|
|
|
|
/** Stats thread state, mostly used to manage the stats metadata. */
|
|
FStatsLoadedState StatsThreadStats;
|
|
FStatsReadStream Stream;
|
|
|
|
/** Index of the last processed data for the mini-view. */
|
|
int32 CurrentMiniViewFrame;
|
|
|
|
public:
|
|
|
|
/**
|
|
* Default constructor, creates a profiler session from a capture file.
|
|
*/
|
|
FRawProfilerSession(const FString& InRawStatsFileFileath);
|
|
|
|
/** Destructor. */
|
|
~FRawProfilerSession();
|
|
|
|
/** Updates this profiler session. */
|
|
bool HandleTicker(float DeltaTime);
|
|
|
|
/** Starts a process of loading the raw stats file. */
|
|
void PrepareLoading();
|
|
|
|
const FProfilerStream& GetStream() const
|
|
{
|
|
return ProfilerStream;
|
|
}
|
|
|
|
/**
|
|
* Process all stats packets and convert them to data accessible by the profiler.
|
|
* Temporary version, will be optimized later.
|
|
*/
|
|
void ProcessStatPacketArray(const FStatPacketArray& PacketArray, FProfilerFrame& out_ProfilerFrame, int32 FrameIndex);
|
|
};
|
|
|
|
#endif // STATS
|