class ProfilingManager

Tracks CPU profiling information with each frame for main and render threads.

Public

Constructors

ProfilingManager

ProfilingManager()

Methods

~ProfilingManager

~ProfilingManager() noexcept

UpdateInternal

void UpdateInternal()

Called every frame.

UpdateRenderThreadInternal

void UpdateRenderThreadInternal()

Called every frame from the render thread.

GetReport

const ProfilerReport &GetReport(ProfiledThread thread, u32 idx = 0) const

Returns a profiler report for the specified frame, for the specified thread.

thread
Thread for which to retrieve the profiler report.
idx
Profiler report index, ranging [0, NUM_SAVED_FRAMES]. 0 always returns the latest report. Increasing indexes return reports for older and older frames. Out of range indexes will be clamped.

staticInstance

static T &Instance()

Returns a reference to the module instance.

Module has to have been started up first otherwise an exception will be thrown.

staticInstancePtr

static T *InstancePtr()

Returns a pointer to the module instance.

Module has to have been started up first otherwise an exception will be thrown.

staticShutDown

static void ShutDown()

Shuts down this module and frees any resources it is using.

staticIsStarted

static bool IsStarted()

Query if the module has been started.

Protected

Methods

~Module<T>

virtual ~Module<T>() = default

OnStartUp

virtual void OnStartUp()

Override if you want your module to be notified once it has been constructed and started.

OnShutDown

virtual void OnShutDown()

Override if you want your module to be notified just before it is deleted.

staticInstanceInternal

static T *&InstanceInternal()

Returns a singleton instance of this module.

staticIsDestroyed

static bool &IsDestroyed()

Checks has the Module been shut down.

staticIsStartedUp

static bool &IsStartedUp()

Checks has the Module been started up.

Private

Fields

mSavedMainThreadReports

ProfilerReport * mSavedMainThreadReports

mNextSimulationReportIndex

u32 mNextSimulationReportIndex

mSavedRenderThreadReports

ProfilerReport * mSavedRenderThreadReports

mNextRenderThreadReportIndex

u32 mNextRenderThreadReportIndex

mSync

Mutex mSync