summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2022-04-12 00:23:22 +0200
committerHugo Locurcio <hugo.locurcio@hugo.pro>2022-05-17 12:28:56 +0200
commit2d56dfb746fb05c8cab090e4b411b1987e990fca (patch)
tree77b516b1d76ca6f78ad7a3edcf74efc60a8a7931
parentd64fc0c11442b17a2d81edb3a3042d9a34b6621e (diff)
Hide the first `--print-fps` outputs after the engine has started
The first 2 or 3 prints are inaccurate since the engine has just started at that point.
-rw-r--r--main/main.cpp16
-rw-r--r--main/main.h1
2 files changed, 12 insertions, 5 deletions
diff --git a/main/main.cpp b/main/main.cpp
index b1aee3f60a..191f4d684f 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -2634,6 +2634,7 @@ bool Main::start() {
uint64_t Main::last_ticks = 0;
uint32_t Main::frames = 0;
+uint32_t Main::hide_print_fps_attempts = 3;
uint32_t Main::frame = 0;
bool Main::force_redraw_requested = false;
int Main::iterating = 0;
@@ -2774,12 +2775,17 @@ bool Main::iteration() {
Engine::get_singleton()->_process_frames++;
if (frame > 1000000) {
- if (editor || project_manager) {
- if (print_fps) {
- print_line(vformat("Editor FPS: %d (%s mspf)", frames, rtos(1000.0 / frames).pad_decimals(2)));
+ // Wait a few seconds before printing FPS, as FPS reporting just after the engine has started is inaccurate.
+ if (hide_print_fps_attempts == 0) {
+ if (editor || project_manager) {
+ if (print_fps) {
+ print_line(vformat("Editor FPS: %d (%s mspf)", frames, rtos(1000.0 / frames).pad_decimals(2)));
+ }
+ } else if (print_fps || GLOBAL_GET("debug/settings/stdout/print_fps")) {
+ print_line(vformat("Project FPS: %d (%s mspf)", frames, rtos(1000.0 / frames).pad_decimals(2)));
}
- } else if (GLOBAL_GET("debug/settings/stdout/print_fps") || print_fps) {
- print_line(vformat("Project FPS: %d (%s mspf)", frames, rtos(1000.0 / frames).pad_decimals(2)));
+ } else {
+ hide_print_fps_attempts--;
}
Engine::get_singleton()->_fps = frames;
diff --git a/main/main.h b/main/main.h
index 14a8fb4147..d1870ab8df 100644
--- a/main/main.h
+++ b/main/main.h
@@ -38,6 +38,7 @@
class Main {
static void print_help(const char *p_binary);
static uint64_t last_ticks;
+ static uint32_t hide_print_fps_attempts;
static uint32_t frames;
static uint32_t frame;
static bool force_redraw_requested;