浏览代码

Merge pull request #60506 from m4gr3d/fix_low_processor_mode_rendering_after_resume_main

Rémi Verschelde 3 年之前
父节点
当前提交
6a9115b983
共有 2 个文件被更改,包括 4 次插入1 次删除
  1. 2 0
      platform/android/java_godot_lib_jni.cpp
  2. 2 1
      platform/android/os_android.cpp

+ 2 - 0
platform/android/java_godot_lib_jni.cpp

@@ -503,6 +503,8 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererResumed(JNI
 		return;
 	}
 
+	// We force redraw to ensure we render at least once when resuming the app.
+	Main::force_redraw();
 	if (os_android->get_main_loop()) {
 		os_android->get_main_loop()->notification(MainLoop::NOTIFICATION_APPLICATION_RESUMED);
 	}

+ 2 - 1
platform/android/os_android.cpp

@@ -187,10 +187,11 @@ bool OS_Android::main_loop_iterate(bool *r_should_swap_buffers) {
 		return false;
 	}
 	DisplayServerAndroid::get_singleton()->process_events();
+	uint64_t current_frames_drawn = Engine::get_singleton()->get_frames_drawn();
 	bool exit = Main::iteration();
 
 	if (r_should_swap_buffers) {
-		*r_should_swap_buffers = !is_in_low_processor_usage_mode() || RenderingServer::get_singleton()->has_changed();
+		*r_should_swap_buffers = !is_in_low_processor_usage_mode() || RenderingServer::get_singleton()->has_changed() || current_frames_drawn != Engine::get_singleton()->get_frames_drawn();
 	}
 
 	return exit;