From 9881f2fa31373aacf8a39d90f289d0fa79c64c7e Mon Sep 17 00:00:00 2001 From: Nikita Travkin Date: Wed, 29 Nov 2023 17:24:45 +0500 Subject: [PATCH] libandroid: xr: don't assume android GLES --- src/libandroid/native_window.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/libandroid/native_window.c b/src/libandroid/native_window.c index 2e27d01b..72d4cfa0 100644 --- a/src/libandroid/native_window.c +++ b/src/libandroid/native_window.c @@ -575,15 +575,19 @@ struct XrGraphicsBindingOpenGLESAndroidKHR { XrResult bionic_xrCreateSession(XrInstance instance, XrSessionCreateInfo *createInfo, XrSession *session) { - // TODO: check the type and handle Vulkan struct XrGraphicsBindingOpenGLESAndroidKHR *android_bind = createInfo->next; - XrGraphicsBindingEGLMNDX egl_bind = {XR_TYPE_GRAPHICS_BINDING_EGL_MNDX}; - egl_bind.getProcAddress = eglGetProcAddress; - egl_bind.display = android_bind->display; - egl_bind.config = android_bind->config; - egl_bind.context = android_bind->context; - createInfo->next = &egl_bind; + + if (android_bind->type == XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR) { + egl_bind.getProcAddress = eglGetProcAddress; + egl_bind.display = android_bind->display; + egl_bind.config = android_bind->config; + egl_bind.context = android_bind->context; + createInfo->next = &egl_bind; + } else { + fprintf(stderr, "xrCreateSession: The graphics binding type = %d\n", android_bind->type); + } + return xr_lazy_call("xrCreateSession", instance, createInfo, session); }