LeviLamina
Loading...
Searching...
No Matches
ImguiProfiler.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
10
12public:
13 // ImguiProfiler inner types declare
14 // clang-format off
15 struct Record;
16 struct RecordGroup;
17 class Timer;
18 class ManualTimer;
19 class ScopedTimer;
20 // clang-format on
21
22 // ImguiProfiler inner types define
23 struct Record {
24 public:
25 // member variables
26 // NOLINTBEGIN
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;
31 // NOLINTEND
32 };
33
34 struct RecordGroup {
35 public:
36 // RecordGroup inner types declare
37 // clang-format off
38 struct Record;
39 struct FullStackRecord;
40 // clang-format on
41
42 // RecordGroup inner types define
43 enum class SortType : int {
44 AverageTimeClient = 0,
45 CountTimeClient = 1,
46 TotalTimeClient = 2,
47 AverageTimeServer = 3,
48 CountTimeServer = 4,
49 TotalTimeServer = 5,
50 };
51
52 struct Record {
53 public:
54 // member variables
55 // NOLINTBEGIN
56 ::ll::TypedStorage<8, 24, ::TimeAccumulator> mTimeAccumulator;
57 ::ll::TypedStorage<8, 48, ::AverageTracker> mAverageTracker;
58 // NOLINTEND
59
60 public:
61 // prevent constructor by default
62 Record& operator=(Record const&);
63 Record();
64
65 public:
66 // member functions
67 // NOLINTBEGIN
68 MCAPI Record(::ImguiProfiler::RecordGroup::Record const&);
69
70 MCAPI ::ImguiProfiler::RecordGroup::Record& operator=(::ImguiProfiler::RecordGroup::Record&&);
71
72 MCAPI ~Record();
73 // NOLINTEND
74
75 public:
76 // constructor thunks
77 // NOLINTBEGIN
78 MCAPI void* $ctor(::ImguiProfiler::RecordGroup::Record const&);
79 // NOLINTEND
80
81 public:
82 // destructor thunk
83 // NOLINTBEGIN
84 MCAPI void $dtor();
85 // NOLINTEND
86 };
87
88 struct FullStackRecord {
89 public:
90 // member variables
91 // NOLINTBEGIN
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;
96 // NOLINTEND
97
98 public:
99 // prevent constructor by default
100 FullStackRecord& operator=(FullStackRecord const&);
101 FullStackRecord(FullStackRecord const&);
102 FullStackRecord();
103
104 public:
105 // member functions
106 // NOLINTBEGIN
107 MCAPI FullStackRecord(::ImguiProfiler::RecordGroup::FullStackRecord&&);
108
109 MCAPI ::ImguiProfiler::RecordGroup::FullStackRecord&
111
112 MCAPI ~FullStackRecord();
113 // NOLINTEND
114
115 public:
116 // constructor thunks
117 // NOLINTBEGIN
119 // NOLINTEND
120
121 public:
122 // destructor thunk
123 // NOLINTBEGIN
124 MCAPI void $dtor();
125 // NOLINTEND
126 };
127
128 public:
129 // member variables
130 // NOLINTBEGIN
131 ::ll::TypedStorage<8, 24, ::std::vector<::ImguiProfiler::RecordGroup::FullStackRecord>> mRecords;
132 ::ll::TypedStorage<4, 4, ::ImguiProfiler::RecordGroup::SortType> mSortType;
133 // NOLINTEND
134
135 public:
136 // member functions
137 // NOLINTBEGIN
138 MCAPI bool isGreaterThan(
141 );
142
143 MCAPI ::ImguiProfiler::RecordGroup::FullStackRecord& operator[](::std::string const& name);
144 // NOLINTEND
145 };
146
147 class Timer {
148 public:
149 // Timer inner types declare
150 // clang-format off
151 struct Signature;
152 // clang-format on
153
154 // Timer inner types define
155 struct Signature {
156 public:
157 // member variables
158 // NOLINTBEGIN
159 ::ll::TypedStorage<8, 8, char const*> mGroup;
160 ::ll::TypedStorage<8, 8, char const*> mName;
161 // NOLINTEND
162 };
163
164 public:
165 // member variables
166 // NOLINTBEGIN
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;
171 // NOLINTEND
172
173 public:
174 // virtual functions
175 // NOLINTBEGIN
176 virtual ~Timer() = default;
177 // NOLINTEND
178
179 public:
180 // vftables
181 // NOLINTBEGIN
182 MCNAPI static void** $vftable();
183 // NOLINTEND
184 };
185
187 public:
188 // member variables
189 // NOLINTBEGIN
190 ::ll::TypedStorage<1, 1, bool> mHasAddedRecord;
191 // NOLINTEND
192
193 public:
194 // virtual functions
195 // NOLINTBEGIN
196#ifdef LL_PLAT_S
197 virtual ~ManualTimer() /*override*/ = default;
198#else // LL_PLAT_C
199 virtual ~ManualTimer() /*override*/;
200#endif
201
202 // NOLINTEND
203
204 public:
205 // member functions
206 // NOLINTBEGIN
207 MCAPI_C void mark();
208 // NOLINTEND
209
210 public:
211 // destructor thunk
212 // NOLINTBEGIN
213 MCFOLD void $dtor();
214 // NOLINTEND
215
216 public:
217 // vftables
218 // NOLINTBEGIN
219 MCNAPI static void** $vftable();
220 // NOLINTEND
221 };
222
224 public:
225 // virtual functions
226 // NOLINTBEGIN
227 virtual ~ScopedTimer() /*override*/;
228 // NOLINTEND
229
230 public:
231 // destructor thunk
232 // NOLINTBEGIN
233 MCAPI void $dtor();
234 // NOLINTEND
235
236 public:
237 // vftables
238 // NOLINTBEGIN
239 MCNAPI static void** $vftable();
240 // NOLINTEND
241 };
242
243public:
244 // member variables
245 // NOLINTBEGIN
246 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::ImguiProfiler::RecordGroup>> mRecordGroups;
247 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mRecordGroupMutex;
248 // NOLINTEND
249
250public:
251 // virtual functions
252 // NOLINTBEGIN
253 virtual ~ImguiProfiler() /*override*/ = default;
254 // NOLINTEND
255
256public:
257 // member functions
258 // NOLINTBEGIN
259 MCAPI ::TimeAccumulator
260 getTimeAccumulator(::std::string const& group, ::std::string const& name, bool isClientSide);
261
262 MCAPI void update();
263 // NOLINTEND
264
265public:
266 // static variables
267 // NOLINTBEGIN
268 MCAPI static ::std::vector<::ImguiProfiler::Record>& sPendingRecords();
269
270 MCAPI static int& sProduceRecords();
271
272 MCAPI static ::Bedrock::Threading::Mutex& sRecordMutex();
273 // NOLINTEND
274
275public:
276 // vftables
277 // NOLINTBEGIN
278 MCNAPI static void** $vftable();
279 // NOLINTEND
280};
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()