Fix the issue causing the screen to be black after resuming when in low processor mode.
This is done by forcing a redraw and buffers swap when resuming the app.
This commit is contained in:
parent
3ba980379d
commit
7a88d5bf28
2 changed files with 4 additions and 1 deletions
|
@ -514,6 +514,8 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererResumed(JNI
|
||||||
if (step.get() <= 0)
|
if (step.get() <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// We force redraw to ensure we render at least once when resuming the app.
|
||||||
|
Main::force_redraw();
|
||||||
if (os_android->get_main_loop()) {
|
if (os_android->get_main_loop()) {
|
||||||
os_android->get_main_loop()->notification(MainLoop::NOTIFICATION_APP_RESUMED);
|
os_android->get_main_loop()->notification(MainLoop::NOTIFICATION_APP_RESUMED);
|
||||||
}
|
}
|
||||||
|
|
|
@ -322,10 +322,11 @@ void OS_Android::main_loop_begin() {
|
||||||
bool OS_Android::main_loop_iterate(bool *r_should_swap_buffers) {
|
bool OS_Android::main_loop_iterate(bool *r_should_swap_buffers) {
|
||||||
if (!main_loop)
|
if (!main_loop)
|
||||||
return false;
|
return false;
|
||||||
|
uint64_t current_frames_drawn = Engine::get_singleton()->get_frames_drawn();
|
||||||
bool exit = Main::iteration();
|
bool exit = Main::iteration();
|
||||||
|
|
||||||
if (r_should_swap_buffers) {
|
if (r_should_swap_buffers) {
|
||||||
*r_should_swap_buffers = !is_in_low_processor_usage_mode() || _update_pending;
|
*r_should_swap_buffers = !is_in_low_processor_usage_mode() || _update_pending || current_frames_drawn != Engine::get_singleton()->get_frames_drawn();
|
||||||
}
|
}
|
||||||
|
|
||||||
return exit;
|
return exit;
|
||||||
|
|
Loading…
Reference in a new issue