diff options
author | Craig Robbins <kde.psych@gmail.com> | 2014-11-11 20:58:57 +1000 |
---|---|---|
committer | Craig Robbins <kde.psych@gmail.com> | 2014-11-11 20:58:57 +1000 |
commit | 45ebaa3524a47e12ae1020c4803e3dd499487808 (patch) | |
tree | e09c557ca82d4ce734870ae6518f0d2e96c489d6 /src/game.cpp | |
parent | 0adadba2182e416f768c83804401e2c177307f0a (diff) | |
download | minetest-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.cpp | 35 |
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) { |