summaryrefslogtreecommitdiffstats
path: root/modules/openxr/extensions/platform/openxr_opengl_extension.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-01-30 17:47:38 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-01-30 17:47:38 +0100
commit6a126b0934d1dac09aaf504da2f5d7dc1156feda (patch)
treed9952ab88e669f319a7d906348d6d6557bbb44b2 /modules/openxr/extensions/platform/openxr_opengl_extension.cpp
parenta8cfd1436a5e9c87ff4910a18641e60761994076 (diff)
parent7e0f7d3abd4a02f423a5b95616840e028a9af7fa (diff)
downloadredot-engine-6a126b0934d1dac09aaf504da2f5d7dc1156feda.tar.gz
Merge pull request #86180 from Riteo/wayland-squashed
Add Wayland support (squashed review edition)
Diffstat (limited to 'modules/openxr/extensions/platform/openxr_opengl_extension.cpp')
-rw-r--r--modules/openxr/extensions/platform/openxr_opengl_extension.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/modules/openxr/extensions/platform/openxr_opengl_extension.cpp b/modules/openxr/extensions/platform/openxr_opengl_extension.cpp
index a9d970bbb9..d92084a220 100644
--- a/modules/openxr/extensions/platform/openxr_opengl_extension.cpp
+++ b/modules/openxr/extensions/platform/openxr_opengl_extension.cpp
@@ -131,9 +131,9 @@ bool OpenXROpenGLExtension::check_graphics_api_support(XrVersion p_desired_versi
#ifdef WIN32
XrGraphicsBindingOpenGLWin32KHR OpenXROpenGLExtension::graphics_binding_gl;
-#elif ANDROID_ENABLED
+#elif defined(ANDROID_ENABLED)
XrGraphicsBindingOpenGLESAndroidKHR OpenXROpenGLExtension::graphics_binding_gl;
-#else
+#elif defined(X11_ENABLED)
XrGraphicsBindingOpenGLXlibKHR OpenXROpenGLExtension::graphics_binding_gl;
#endif
@@ -147,20 +147,24 @@ void *OpenXROpenGLExtension::set_session_create_and_get_next_pointer(void *p_nex
DisplayServer *display_server = DisplayServer::get_singleton();
+#ifdef WAYLAND_ENABLED
+ ERR_FAIL_COND_V_MSG(display_server->get_name() == "Wayland", p_next_pointer, "OpenXR is not yet supported on OpenGL Wayland.");
+#endif
+
#ifdef WIN32
graphics_binding_gl.type = XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR,
graphics_binding_gl.next = p_next_pointer;
graphics_binding_gl.hDC = (HDC)display_server->window_get_native_handle(DisplayServer::WINDOW_VIEW);
graphics_binding_gl.hGLRC = (HGLRC)display_server->window_get_native_handle(DisplayServer::OPENGL_CONTEXT);
-#elif ANDROID_ENABLED
+#elif defined(ANDROID_ENABLED)
graphics_binding_gl.type = XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR;
graphics_binding_gl.next = p_next_pointer;
graphics_binding_gl.display = (void *)display_server->window_get_native_handle(DisplayServer::DISPLAY_HANDLE);
graphics_binding_gl.config = (EGLConfig)0; // https://github.com/KhronosGroup/OpenXR-SDK-Source/blob/master/src/tests/hello_xr/graphicsplugin_opengles.cpp#L122
graphics_binding_gl.context = (void *)display_server->window_get_native_handle(DisplayServer::OPENGL_CONTEXT);
-#else
+#elif defined(X11_ENABLED)
graphics_binding_gl.type = XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR;
graphics_binding_gl.next = p_next_pointer;