summarylogtreecommitdiffstats
path: root/0008-Fix-passing-QJniEnvironment-to-ANativeWindow_fromSur.patch
diff options
context:
space:
mode:
Diffstat (limited to '0008-Fix-passing-QJniEnvironment-to-ANativeWindow_fromSur.patch')
-rw-r--r--0008-Fix-passing-QJniEnvironment-to-ANativeWindow_fromSur.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/0008-Fix-passing-QJniEnvironment-to-ANativeWindow_fromSur.patch b/0008-Fix-passing-QJniEnvironment-to-ANativeWindow_fromSur.patch
new file mode 100644
index 000000000000..09fc8b8c6322
--- /dev/null
+++ b/0008-Fix-passing-QJniEnvironment-to-ANativeWindow_fromSur.patch
@@ -0,0 +1,44 @@
+From e668956ba71426d495ca9e117638b8d738fd148f Mon Sep 17 00:00:00 2001
+From: Martchus <martchus@gmx.net>
+Date: Sat, 8 May 2021 01:55:19 +0200
+Subject: [PATCH 8/8] Fix passing QJniEnvironment to ANativeWindow_fromSurface
+
+The function ANativeWindow_fromSurface (as declared by
+`$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/native_window_jni.h`
+from version r22.b of the Android NDK) takes a `JNIEnv*` so `.jniEnv()` must be used.
+
+This prevents the following compilation error:
+
+```
+error: no matching function for call to 'ANativeWindow_f
+romSurface'
+ m_nativeWindow = ANativeWindow_fromSurface(env, m_androidSurfaceObject.object());
+ ^~~~~~~~~~~~~~~~~~~~~~~~~
+/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/native_window_jni.h:45:16: note: candidate function not viable: no known conversion from 'QJniEnvironment' t
+o 'JNIEnv *' (aka '_JNIEnv *') for 1st argument
+ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface);
+ ^
+1 error generated.
+```
+
+Change-Id: I70d75cb7edc5875314fcb8a70d51d0ef40442101
+---
+ src/plugins/platforms/android/qandroidplatformvulkanwindow.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/plugins/platforms/android/qandroidplatformvulkanwindow.cpp b/src/plugins/platforms/android/qandroidplatformvulkanwindow.cpp
+index 8f2a37626a..9d4688b52d 100644
+--- a/src/plugins/platforms/android/qandroidplatformvulkanwindow.cpp
++++ b/src/plugins/platforms/android/qandroidplatformvulkanwindow.cpp
+@@ -173,7 +173,7 @@ VkSurfaceKHR *QAndroidPlatformVulkanWindow::vkSurface()
+ return &m_vkSurface;
+
+ QJniEnvironment env;
+- m_nativeWindow = ANativeWindow_fromSurface(env, m_androidSurfaceObject.object());
++ m_nativeWindow = ANativeWindow_fromSurface(env.jniEnv(), m_androidSurfaceObject.object());
+
+ VkAndroidSurfaceCreateInfoKHR surfaceInfo;
+ memset(&surfaceInfo, 0, sizeof(surfaceInfo));
+--
+2.31.1
+