diff options
Diffstat (limited to 'main')
-rw-r--r-- | main/main.cpp | 11 | ||||
-rw-r--r-- | main/main.h | 3 |
2 files changed, 14 insertions, 0 deletions
diff --git a/main/main.cpp b/main/main.cpp index cbf30af38c..f9044b61cd 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1789,6 +1789,10 @@ uint64_t Main::target_ticks = 0; uint32_t Main::frames = 0; uint32_t Main::frame = 0; bool Main::force_redraw_requested = false; +int Main::iterating = 0; +bool Main::is_iterating() { + return iterating > 0; +} // For performance metrics static uint64_t physics_process_max = 0; @@ -1796,6 +1800,11 @@ static uint64_t idle_process_max = 0; bool Main::iteration() { + //for now do not error on this + //ERR_FAIL_COND_V(iterating, false); + + iterating++; + uint64_t ticks = OS::get_singleton()->get_ticks_usec(); Engine::get_singleton()->_frame_ticks = ticks; main_timer_sync.set_cpu_ticks_usec(ticks); @@ -1923,6 +1932,8 @@ bool Main::iteration() { frames = 0; } + iterating--; + if (fixed_fps != -1) return exit; diff --git a/main/main.h b/main/main.h index 01fc259a8a..694305526a 100644 --- a/main/main.h +++ b/main/main.h @@ -47,6 +47,7 @@ class Main { static uint32_t frames; static uint32_t frame; static bool force_redraw_requested; + static int iterating; public: static bool is_project_manager(); @@ -58,6 +59,8 @@ public: static bool iteration(); static void force_redraw(); + static bool is_iterating(); + static void cleanup(); }; |