diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index aa8fb0838..f8b915918 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp @@ -327,10 +327,20 @@ void Java_org_citra_citra_1emu_NativeLibrary_enableSecondWindow(JNIEnv* env, [[maybe_unused]] jobject obj,jobject surf) { s_secondary_surface = ANativeWindow_fromSurface(env, surf); secondary_enabled = true; + bool notify = false; + if (second_window) { + notify = second_window->OnSurfaceChanged(s_secondary_surface); + } + auto& system = Core::System::GetInstance(); + if (notify && system.IsPoweredOn()) { + system.GPU().Renderer().NotifySurfaceChanged(); + } - LOG_INFO(Frontend, "Secondary Surface Enabled"); + LOG_INFO(Frontend, "Secondary Surface changed"); } + + void Java_org_citra_citra_1emu_NativeLibrary_disableSecondWindow(JNIEnv* env, [[maybe_unused]] jobject obj) { diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.h b/src/video_core/renderer_vulkan/renderer_vulkan.h index b52142e88..cad1cf204 100644 --- a/src/video_core/renderer_vulkan/renderer_vulkan.h +++ b/src/video_core/renderer_vulkan/renderer_vulkan.h @@ -76,6 +76,7 @@ public: void NotifySurfaceChanged() override { main_window.NotifySurfaceChanged(); + if (second_window) second_window->NotifySurfaceChanged(); } void SwapBuffers() override;