From 154d4b3fe013184f340b2f61b00be7d553d8fcc6 Mon Sep 17 00:00:00 2001 From: Marius Kittler Date: Sat, 8 May 2021 01:55:19 +0200 Subject: [PATCH] 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 Reviewed-by: Assam Boudjelthia (cherry picked from commit 590f70a849d85c438385c313fb452f528fd304a4) Reviewed-by: Qt Cherry-pick Bot --- 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 8f2a37626ac..9d4688b52dc 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));