diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-05-24 22:31:03 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-24 22:31:03 +0200 |
commit | 3ecdc27f49cbdfbb07853606242538b6ca1fa37a (patch) | |
tree | a6859f0fdb8e292c730ebbbb98fffe53fac9caa3 /platform/android/display_server_android.cpp | |
parent | 926d6c108277f74a29b683a4d623393b866e6d1c (diff) | |
parent | b987677cc0f7a9c5ba975f0d896652feef296b87 (diff) | |
download | redot-engine-3ecdc27f49cbdfbb07853606242538b6ca1fa37a.tar.gz |
Merge pull request #39004 from nekomatata/android-reset-surface
Proper surface reset when resuming app on Android
Diffstat (limited to 'platform/android/display_server_android.cpp')
-rw-r--r-- | platform/android/display_server_android.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/platform/android/display_server_android.cpp b/platform/android/display_server_android.cpp index c5b06827b2..1436d832de 100644 --- a/platform/android/display_server_android.cpp +++ b/platform/android/display_server_android.cpp @@ -367,6 +367,25 @@ void DisplayServerAndroid::register_android_driver() { register_create_function("android", create_func, get_rendering_drivers_func); } +void DisplayServerAndroid::reset_window() { +#if defined(VULKAN_ENABLED) + if (rendering_driver == "vulkan") { + ANativeWindow *native_window = OS_Android::get_singleton()->get_native_window(); + ERR_FAIL_COND(!native_window); + + ERR_FAIL_COND(!context_vulkan); + context_vulkan->window_destroy(MAIN_WINDOW_ID); + + Size2i display_size = OS_Android::get_singleton()->get_display_size(); + if (context_vulkan->window_create(native_window, display_size.width, display_size.height) == -1) { + memdelete(context_vulkan); + context_vulkan = nullptr; + ERR_FAIL_MSG("Failed to reset Vulkan window."); + } + } +#endif +} + DisplayServerAndroid::DisplayServerAndroid(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, uint32_t p_flags, const Vector2i &p_resolution, Error &r_error) { rendering_driver = p_rendering_driver; |