Просмотр исходного кода

android: Run OnEmulationStarted frontend callback in another thread

The JVM has problems with attaching to a Fiber so we start a new thread and wait for the result here.
t895 2 лет назад
Родитель
Сommit
2600ac65c8
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      src/android/app/src/main/jni/emu_window/emu_window.cpp

+ 3 - 1
src/android/app/src/main/jni/emu_window/emu_window.cpp

@@ -3,6 +3,7 @@
 
 #include <android/native_window_jni.h>
 
+#include "common/android/id_cache.h"
 #include "common/logging/log.h"
 #include "input_common/drivers/touch_screen.h"
 #include "input_common/drivers/virtual_amiibo.h"
@@ -60,7 +61,8 @@ void EmuWindow_Android::OnRemoveNfcTag() {
 
 void EmuWindow_Android::OnFrameDisplayed() {
     if (!m_first_frame) {
-        EmulationSession::GetInstance().OnEmulationStarted();
+        Common::Android::RunJNIOnFiber<void>(
+            [&](JNIEnv* env) { EmulationSession::GetInstance().OnEmulationStarted(); });
         m_first_frame = true;
     }
 }