From 6d1bbe9c5c42607d27c4026d14cc86c6b3befdc6 Mon Sep 17 00:00:00 2001 From: bjorn Date: Tue, 15 Nov 2022 20:35:39 -0800 Subject: [PATCH] Fix Android build on new NDKs; Some Android header defines DEPTH, which clashes with a symbol in the OpenXR driver. This change just stops using Android headers in there and declares more granular private functions. It also removes a few unused private os functions. --- src/core/os_android.c | 16 ++++------------ src/modules/headset/headset_openxr.c | 9 ++++----- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/core/os_android.c b/src/core/os_android.c index c13ea1df..e37073e8 100644 --- a/src/core/os_android.c +++ b/src/core/os_android.c @@ -401,20 +401,12 @@ bool os_is_key_down(os_key key) { // Private, must be declared manually to use -struct ANativeActivity* os_get_activity() { - return state.app->activity; +void* os_get_java_vm() { + return state.app->activity->vm; } -int os_get_activity_state() { - return state.app->activityState; -} - -ANativeWindow* os_get_native_window() { - return state.app->window; -} - -JNIEnv* os_get_jni() { - return state.jni; +void* os_get_jni_context() { + return state.app->activity->clazz; } const char** os_vk_get_instance_extensions(uint32_t* count) { diff --git a/src/modules/headset/headset_openxr.c b/src/modules/headset/headset_openxr.c index 7cab8ea6..a29a5db5 100644 --- a/src/modules/headset/headset_openxr.c +++ b/src/modules/headset/headset_openxr.c @@ -19,8 +19,8 @@ #include #elif defined(__ANDROID__) #define XR_USE_PLATFORM_ANDROID -struct ANativeActivity* os_get_activity(void); -#include +void* os_get_java_vm(void); +void* os_get_jni_context(void); #include #endif @@ -304,11 +304,10 @@ static bool openxr_init(HeadsetConfig* config) { return false; } - ANativeActivity* activity = os_get_activity(); XrLoaderInitInfoAndroidKHR loaderInfo = { .type = XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR, - .applicationVM = activity->vm, - .applicationContext = activity->clazz + .applicationVM = os_get_java_vm(), + .applicationContext = os_get_jni_context() }; if (XR_FAILED(xrInitializeLoaderKHR((XrLoaderInitInfoBaseHeaderKHR*) &loaderInfo))) {