From b176b31f5dfeb1ddd451c4b0587a4cc7deabc117 Mon Sep 17 00:00:00 2001 From: Fredia Huya-Kouadio Date: Sun, 27 Mar 2022 18:09:48 -0700 Subject: Fix flickering issues with low processor mode on Android --- platform/android/os_android.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'platform/android/os_android.cpp') diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp index 438fc04eb6..ef53415f16 100644 --- a/platform/android/os_android.cpp +++ b/platform/android/os_android.cpp @@ -36,6 +36,7 @@ #include "main/main.h" #include "platform/android/display_server_android.h" #include "scene/main/scene_tree.h" +#include "servers/rendering_server.h" #include "dir_access_jandroid.h" #include "file_access_android.h" @@ -181,12 +182,18 @@ void OS_Android::main_loop_begin() { } } -bool OS_Android::main_loop_iterate() { +bool OS_Android::main_loop_iterate(bool *r_should_swap_buffers) { if (!main_loop) { return false; } DisplayServerAndroid::get_singleton()->process_events(); - return Main::iteration(); + bool exit = Main::iteration(); + + if (r_should_swap_buffers) { + *r_should_swap_buffers = !is_in_low_processor_usage_mode() || RenderingServer::get_singleton()->has_changed(); + } + + return exit; } void OS_Android::main_loop_end() { -- cgit v1.2.3