aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game.cpp35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 1396e9439..928c5b383 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -1438,6 +1438,8 @@ protected:
bool checkConnection();
bool handleCallbacks();
void processQueues();
+ void updateProfilers(const GameRunData &run_data, const RunStats &stats,
+ const FpsControl &draw_times, f32 dtime);
void addProfilerGraphs(const RunStats &stats, const FpsControl &draw_times,
f32 dtime);
void updateStats(RunStats *stats, const FpsControl &draw_times, f32 dtime);
@@ -1574,6 +1576,8 @@ private:
std::wstring statustext;
KeyCache keycache;
+
+ IntervalLimiter profiler_interval;
};
Game::Game() :
@@ -1722,7 +1726,8 @@ void Game::run()
infotext = L"";
hud->resizeHotbar();
- addProfilerGraphs(stats, draw_times, dtime);
+
+ updateProfilers(runData, stats, draw_times, dtime);
processUserInput(&flags, &runData, dtime);
// Update camera before player movement to avoid camera lag of one frame
updateCameraDirection(&cam_view, &flags);
@@ -2319,6 +2324,34 @@ void Game::processQueues()
}
+void Game::updateProfilers(const GameRunData &run_data, const RunStats &stats,
+ const FpsControl &draw_times, f32 dtime)
+{
+ float profiler_print_interval =
+ g_settings->getFloat("profiler_print_interval");
+ bool print_to_log = true;
+
+ if (profiler_print_interval == 0) {
+ print_to_log = false;
+ profiler_print_interval = 5;
+ }
+
+ if (profiler_interval.step(dtime, profiler_print_interval)) {
+ if (print_to_log) {
+ infostream << "Profiler:" << std::endl;
+ g_profiler->print(infostream);
+ }
+
+ update_profiler_gui(guitext_profiler, font, text_height,
+ run_data.profiler_current_page, run_data.profiler_max_page);
+
+ g_profiler->clear();
+ }
+
+ addProfilerGraphs(stats, draw_times, dtime);
+}
+
+
void Game::addProfilerGraphs(const RunStats &stats,
const FpsControl &draw_times, f32 dtime)
{