30 enum class ScopeTag :
int {
60 ::ll::TypedStorage<4, 4, uint> mGameUpdates;
61 ::ll::TypedStorage<4, 4, uint> mFrames;
62 ::ll::TypedStorage<4, 4, float> mFPS;
63 ::ll::TypedStorage<4, 4, float> mGameUpdateFPS;
64 ::ll::TypedStorage<4, 4, float> mFrameTime;
65 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mLastFrame;
66 ::ll::TypedStorage<1, 1, bool> mFirstFrame;
74 ::ll::TypedStorage<8, 8, char const*> mName;
75 ::ll::TypedStorage<4, 4, ::ProfilerLite::ScopeTag> mScope;
76 ::ll::TypedStorage<4, 4, ::ProfilerLite::ScopeTag> mBaseScope;
77 ::ll::TypedStorage<8, 8, ::ProfilerLite::ScopedData*> mParent;
78 ::ll::TypedStorage<4, 4, int> mTabCount;
79 ::ll::TypedStorage<8, 24, ::std::vector<::ProfilerLite::ScopedData*>> mChildren;
80 ::ll::TypedStorage<4, 4, int> mHitCount;
81 ::ll::TypedStorage<8, 8, double> mTotalTime;
82 ::ll::TypedStorage<8, 8, double> mTotalInclusiveTime;
83 ::ll::TypedStorage<8, 8, double> mMaxTimePerLoop;
84 ::ll::TypedStorage<8, 8, double> mFrameAccumulatedTime;
90 MCNAPI_C
void resetRecursive();
103 void(
::brstd::function_ref<
void(::std::string
const&,
double),
void(::std::string
const&,
double)>)>;
110 ::ll::TypedStorage<8, 144, ::std::array<::ProfilerLite::ScopedData*, 18>> mCustomScopeDatas;
111 ::ll::TypedStorage<8, 96, ::ProfilerLite::ScopedData> mUninitializedScopedData;
112 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mLogFileName;
113 ::ll::TypedStorage<8, 296, ::Core::OutputFileStream> mLogFile;
114 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mScreenLoadLogFileName;
115 ::ll::TypedStorage<8, 296, ::Core::OutputFileStream> mScreenLoadLogFile;
116 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mEventLogFileName;
117 ::ll::TypedStorage<8, 296, ::Core::OutputFileStream> mEventLogFile;
118 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mSecondaryLogFileName;
119 ::ll::TypedStorage<8, 296, ::Core::OutputFileStream> mSecondaryLogFile;
120 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mSecondaryScreenLoadLogFileName;
121 ::ll::TypedStorage<8, 296, ::Core::OutputFileStream> mSecondaryScreenLoadLogFile;
122 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mSecondaryEventLogFileName;
123 ::ll::TypedStorage<8, 296, ::Core::OutputFileStream> mSecondaryEventLogFile;
124 ::ll::TypedStorage<4, 4, float> mSecondsPerUpdate;
125 ::ll::TypedStorage<8, 8, double> mTime;
126 ::ll::TypedStorage<8, 8, double> mStartTime;
127 ::ll::TypedStorage<8, 8, double> mNextUpdateTime;
128 ::ll::TypedStorage<8, 8, double> mLastUpdateTime;
129 ::ll::TypedStorage<8, 8, double> mBenchmarkModeTime;
130 ::ll::TypedStorage<4, 4, int> mTicksToNextMemoryUpdate;
131 ::ll::TypedStorage<1, 1, bool> mBenchmarkModeDone;
132 ::ll::TypedStorage<1, 1, bool> mBenchmarkModeIsSetup;
133 ::ll::TypedStorage<1, 1, bool> mDefaultEnabled;
134 ::ll::TypedStorage<1, 1, bool> mForceEnabled;
135 ::ll::TypedStorage<1, 1, bool> mShouldCheckTreatments;
136 ::ll::TypedStorage<1, 1, bool> mCanLogToSecondaryFile;
137 ::ll::TypedStorage<8, 8, ::_ProfilerLiteTimer*> mActiveScope;
138 ::ll::TypedStorage<8, 16, ::std::map<::std::thread::id, ::_ProfilerLiteTimer*>> mThreadedActiveScopes;
139 ::ll::TypedStorage<8, 32, ::std::string> mCurrentGamestate;
140 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mDebugServerTickTime;
141 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mDebugServerNetworkTime;
142 ::ll::TypedStorage<4, 4, float> mDebugRemoteServerTickTime;
143 ::ll::TypedStorage<8, 72, ::ProfilerLiteTelemetry> mTelemetry;
144 ::ll::TypedStorage<8, 32, ::std::string> mCachedProfileString;
145 ::ll::TypedStorage<4, 16, ::std::array<uint, 4>> mLastNetworkStatSampleNum;
146 ::ll::TypedStorage<8, 8, uint64> mPrevTotalBytesWritten;
147 ::ll::TypedStorage<8, 8, uint64> mPrevTotalBytesRead;
148 ::ll::TypedStorage<8, 40, ::ProfilerLite::RealtimeFrameData> mFrameData;
154 MCAPI ProfilerLite();
156 MCAPI_C
void _calculateRealtimeFrameData();
158 MCAPI_C
void _getProfileStringRecursive(
161 uint64& remainingLength,
162 char*& stringBuilderTemp
165 MCFOLD_C
void _shutdown();
167 MCAPI_C ::Bedrock::ScopeExit init(
::Core::Path const& logFilePath);
169 MCAPI_C
void logScreenCreationEvent(::std::string
const& screenName,
double creationTime, uchar clientID);
171 MCAPI_C
void reset();
176 bool outputProfilerInfo,
177 int benchmarkModeStartTime,
182 MCAPI ~ProfilerLite();
191 MCAPI_C
static void getNetworkStats(
::NetworkStatMetrics& stats, uint& lastSampleNum, ::TrackerType type);
197 MCAPI static ::ProfilerLite& gProfilerLiteInstance();
199 MCAPI static ::std::thread::id& sEmptyThreadID();