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/world/level/chunk/AverageTracker.h"
8#include "mc/world/level/chunk/TimeAccumulator.h"
9
10struct ImguiProfiler : public ::Bedrock::EnableNonOwnerReferences {
11public:
12 // ImguiProfiler inner types declare
13 // clang-format off
14 struct Record;
15 struct RecordGroup;
16 class Timer;
17 class ManualTimer;
18 class ScopedTimer;
19 // clang-format on
20
21 // ImguiProfiler inner types define
22 struct Record {
23 public:
24 // member variables
25 // NOLINTBEGIN
26 ::ll::TypedStorage<8, 8, char const*> mGroup;
27 ::ll::TypedStorage<8, 8, char const*> mName;
28 ::ll::TypedStorage<1, 1, bool> mIsClient;
29 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mElapsed;
30 // NOLINTEND
31 };
32
33 struct RecordGroup {
34 public:
35 // RecordGroup inner types declare
36 // clang-format off
37 struct Record;
38 struct FullStackRecord;
39 // clang-format on
40
41 // RecordGroup inner types define
42 enum class SortType : int {
43 AverageTimeClient = 0,
44 CountTimeClient = 1,
45 TotalTimeClient = 2,
46 AverageTimeServer = 3,
47 CountTimeServer = 4,
48 TotalTimeServer = 5,
49 };
50
51 struct Record {
52 public:
53 // member variables
54 // NOLINTBEGIN
55 ::ll::TypedStorage<8, 24, ::TimeAccumulator> mTimeAccumulator;
56 ::ll::TypedStorage<8, 48, ::AverageTracker> mAverageTracker;
57 // NOLINTEND
58 };
59
61 public:
62 // member variables
63 // NOLINTBEGIN
64 ::ll::TypedStorage<8, 32, ::std::string> mName;
65 ::ll::TypedStorage<1, 1, bool> bUseAverageTracker;
66 ::ll::TypedStorage<8, 72, ::ImguiProfiler::RecordGroup::Record> mClient;
67 ::ll::TypedStorage<8, 72, ::ImguiProfiler::RecordGroup::Record> mServer;
68 // NOLINTEND
69 };
70
71 public:
72 // member variables
73 // NOLINTBEGIN
74 ::ll::TypedStorage<8, 24, ::std::vector<::ImguiProfiler::RecordGroup::FullStackRecord>> mRecords;
75 ::ll::TypedStorage<4, 4, ::ImguiProfiler::RecordGroup::SortType> mSortType;
76 // NOLINTEND
77
78 public:
79 // member functions
80 // NOLINTBEGIN
81 MCAPI ::ImguiProfiler::RecordGroup::FullStackRecord& operator[](::std::string const& name);
82 // NOLINTEND
83 };
84
85 class Timer {
86 public:
87 // Timer inner types declare
88 // clang-format off
89 struct Signature;
90 // clang-format on
91
92 // Timer inner types define
93 struct Signature {
94 public:
95 // member variables
96 // NOLINTBEGIN
97 ::ll::TypedStorage<8, 8, char const*> mGroup;
98 ::ll::TypedStorage<8, 8, char const*> mName;
99 // NOLINTEND
100 };
101
102 public:
103 // member variables
104 // NOLINTBEGIN
105 ::ll::TypedStorage<8, 8, char const*> mGroup;
106 ::ll::TypedStorage<8, 8, char const*> mName;
107 ::ll::TypedStorage<1, 1, bool> mIsClient;
108 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mStart;
109 // NOLINTEND
110
111 public:
112 // virtual functions
113 // NOLINTBEGIN
114 virtual ~Timer() = default;
115 // NOLINTEND
116
117 public:
118 // vftables
119 // NOLINTBEGIN
120 MCNAPI static void** $vftable();
121 // NOLINTEND
122 };
123
125 public:
126 // member variables
127 // NOLINTBEGIN
128 ::ll::TypedStorage<1, 1, bool> mHasAddedRecord;
129 // NOLINTEND
130
131 public:
132 // vftables
133 // NOLINTBEGIN
134 MCNAPI static void** $vftable();
135 // NOLINTEND
136 };
137
139 public:
140 // virtual functions
141 // NOLINTBEGIN
142 virtual ~ScopedTimer() /*override*/;
143 // NOLINTEND
144
145 public:
146 // destructor thunk
147 // NOLINTBEGIN
148 MCAPI void $dtor();
149 // NOLINTEND
150
151 public:
152 // vftables
153 // NOLINTBEGIN
154 MCNAPI static void** $vftable();
155 // NOLINTEND
156 };
157
158public:
159 // member variables
160 // NOLINTBEGIN
161 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::ImguiProfiler::RecordGroup>> mRecordGroups;
162 ::ll::TypedStorage<8, 80, ::std::mutex> mRecordGroupMutex;
163 // NOLINTEND
164
165public:
166 // virtual functions
167 // NOLINTBEGIN
168 virtual ~ImguiProfiler() /*override*/ = default;
169 // NOLINTEND
170
171public:
172 // member functions
173 // NOLINTBEGIN
174 MCAPI ImguiProfiler();
175
176 MCAPI ::TimeAccumulator
177 getTimeAccumulator(::std::string const& group, ::std::string const& name, bool isClientSide);
178
179 MCAPI void update();
180 // NOLINTEND
181
182public:
183 // static functions
184 // NOLINTBEGIN
185 MCAPI static void addRecord(::ImguiProfiler::Record&& record);
186 // NOLINTEND
187
188public:
189 // static variables
190 // NOLINTBEGIN
191 MCAPI static ::std::vector<::ImguiProfiler::Record>& sPendingRecords();
192
193 MCAPI static int& sProduceRecords();
194
195 MCAPI static ::std::mutex& sRecordMutex();
196 // NOLINTEND
197
198public:
199 // constructor thunks
200 // NOLINTBEGIN
201 MCAPI void* $ctor();
202 // NOLINTEND
203
204public:
205 // vftables
206 // NOLINTBEGIN
207 MCNAPI static void** $vftable();
208 // NOLINTEND
209};
Definition EnableNonOwnerReferences.h:7
Definition ImguiProfiler.h:124
static MCAPI void ** $vftable()
Definition ImguiProfiler.h:138
static MCAPI void ** $vftable()
Definition ImguiProfiler.h:85
static MCAPI void ** $vftable()
Definition ImguiProfiler.h:60
Definition ImguiProfiler.h:51
Definition ImguiProfiler.h:33
Definition ImguiProfiler.h:22
Definition ImguiProfiler.h:93
static MCAPI void ** $vftable()