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;
62 Record& operator=(Record
const&);
88 struct FullStackRecord {
92 ::ll::TypedStorage<8, 32, ::std::string> mName;
93 ::ll::TypedStorage<1, 1, bool> bUseAverageTracker;
94 ::ll::TypedStorage<8, 72, ::ImguiProfiler::RecordGroup::Record> mClient;
95 ::ll::TypedStorage<8, 72, ::ImguiProfiler::RecordGroup::Record> mServer;
100 FullStackRecord& operator=(FullStackRecord
const&);
101 FullStackRecord(FullStackRecord
const&);
109 MCAPI ::ImguiProfiler::RecordGroup::FullStackRecord&
112 MCAPI ~FullStackRecord();
131 ::ll::TypedStorage<8, 24, ::std::vector<::ImguiProfiler::RecordGroup::FullStackRecord>> mRecords;
132 ::ll::TypedStorage<4, 4, ::ImguiProfiler::RecordGroup::SortType> mSortType;
138 MCAPI
bool isGreaterThan(
143 MCAPI ::ImguiProfiler::RecordGroup::FullStackRecord& operator[](::std::string
const& name);
159 ::ll::TypedStorage<8, 8, char const*> mGroup;
160 ::ll::TypedStorage<8, 8, char const*> mName;
167 ::ll::TypedStorage<8, 8, char const*> mGroup;
168 ::ll::TypedStorage<8, 8, char const*> mName;
169 ::ll::TypedStorage<1, 1, bool> mIsClient;
170 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mStart;
176 virtual ~Timer() =
default;
190 ::ll::TypedStorage<1, 1, bool> mHasAddedRecord;
246 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::ImguiProfiler::RecordGroup>> mRecordGroups;
247 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mRecordGroupMutex;
259 MCAPI ::TimeAccumulator
260 getTimeAccumulator(::std::string
const& group, ::std::string
const& name,
bool isClientSide);
268 MCAPI static ::std::vector<::ImguiProfiler::Record>& sPendingRecords();
270 MCAPI
static int& sProduceRecords();
272 MCAPI static ::Bedrock::Threading::Mutex& sRecordMutex();
Definition EnableNonOwnerReferences.h:7
Definition ImguiProfiler.h:186
static MCAPI void ** $vftable()
Definition ImguiProfiler.h:223
static MCAPI void ** $vftable()
Definition ImguiProfiler.h:147
static MCAPI void ** $vftable()
Definition ImguiProfiler.h:88
Definition ImguiProfiler.h:52
Definition ImguiProfiler.h:34
Definition ImguiProfiler.h:23
Definition ImguiProfiler.h:155
Definition ImguiProfiler.h:11
static MCAPI void ** $vftable()