3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
7#include "mc/platform/threading/Mutex.h"
8#include "mc/world/level/chunk/AverageTracker.h"
9#include "mc/world/level/chunk/TimeAccumulator.h"
27 ::ll::TypedStorage<8, 8, char const*> mGroup;
28 ::ll::TypedStorage<8, 8, char const*> mName;
29 ::ll::TypedStorage<1, 1, bool> mIsClient;
30 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mElapsed;
43 enum class SortType :
int {
44 AverageTimeClient = 0,
47 AverageTimeServer = 3,
56 ::ll::TypedStorage<8, 24, ::TimeAccumulator> mTimeAccumulator;
57 ::ll::TypedStorage<8, 48, ::AverageTracker> mAverageTracker;
73 struct FullStackRecord {
77 ::ll::TypedStorage<8, 32, ::std::string> mName;
78 ::ll::TypedStorage<1, 1, bool> bUseAverageTracker;
79 ::ll::TypedStorage<8, 72, ::ImguiProfiler::RecordGroup::Record> mClient;
80 ::ll::TypedStorage<8, 72, ::ImguiProfiler::RecordGroup::Record> mServer;
85 FullStackRecord& operator=(FullStackRecord
const&);
93 MCAPI ::ImguiProfiler::RecordGroup::FullStackRecord&
96 MCAPI ~FullStackRecord();
115 ::ll::TypedStorage<8, 24, ::std::vector<::ImguiProfiler::RecordGroup::FullStackRecord>> mRecords;
116 ::ll::TypedStorage<4, 4, ::ImguiProfiler::RecordGroup::SortType> mSortType;
122 MCAPI
bool isGreaterThan(
127 MCAPI ::ImguiProfiler::RecordGroup::FullStackRecord& operator[](::std::string
const& name);
143 ::ll::TypedStorage<8, 8, char const*> mGroup;
144 ::ll::TypedStorage<8, 8, char const*> mName;
151 ::ll::TypedStorage<8, 8, char const*> mGroup;
152 ::ll::TypedStorage<8, 8, char const*> mName;
153 ::ll::TypedStorage<1, 1, bool> mIsClient;
154 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mStart;
180 ::ll::TypedStorage<1, 1, bool> mHasAddedRecord;
190 MCAPI ManualTimer(
char const* group,
char const* name,
bool isClient);
198 MCAPI
void* $ctor(
char const* group,
char const* name,
bool isClient);
216 virtual ~ScopedTimer() ;
222 MCAPI ScopedTimer(
char const* group,
char const* name,
bool isClient);
228 MCAPI
void* $ctor(
char const* group,
char const* name,
bool isClient);
247 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::ImguiProfiler::RecordGroup>> mRecordGroups;
248 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mRecordGroupMutex;
254 virtual ~ImguiProfiler() ;
260 MCAPI ImguiProfiler();
262 MCAPI ::TimeAccumulator
263 getTimeAccumulator(::std::string
const& group, ::std::string
const& name,
bool isClientSide);
279 MCAPI static ::std::vector<::ImguiProfiler::Record>& sPendingRecords();
281 MCAPI
static int& sProduceRecords();
283 MCAPI static ::Bedrock::Threading::Mutex& sRecordMutex();
Definition EnableNonOwnerReferences.h:7
Definition ImguiProfiler.h:176
static MCAPI void ** $vftable()
Definition ImguiProfiler.h:208
static MCAPI void ** $vftable()
Definition ImguiProfiler.h:131
static MCAPI void ** $vftable()
Definition ImguiProfiler.h:73
Definition ImguiProfiler.h:52
Definition ImguiProfiler.h:34
Definition ImguiProfiler.h:23
Definition ImguiProfiler.h:139
static MCAPI void ** $vftable()