aboutsummaryrefslogtreecommitdiff
path: root/src/game.cpp
diff options
context:
space:
mode:
authorCraig Robbins <kde.psych@gmail.com>2014-11-11 20:58:57 +1000
committerCraig Robbins <kde.psych@gmail.com>2014-11-11 20:58:57 +1000
commit45ebaa3524a47e12ae1020c4803e3dd499487808 (patch)
treee09c557ca82d4ce734870ae6518f0d2e96c489d6 /src/game.cpp
parent0adadba2182e416f768c83804401e2c177307f0a (diff)
downloadminetest-45ebaa3524a47e12ae1020c4803e3dd499487808.tar.gz
minetest-45ebaa3524a47e12ae1020c4803e3dd499487808.tar.bz2
minetest-45ebaa3524a47e12ae1020c4803e3dd499487808.zip
Fix profiler values not being updated (F6) and not being logged
Diffstat (limited to 'src/game.cpp')
-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)
{