From dcb0c9b77da790a191857cc77c8128089335fdfa Mon Sep 17 00:00:00 2001 From: ChengduLittleA Date: Mon, 4 Sep 2023 14:16:26 +0800 Subject: [PATCH 1/3] Fix #111820: Missing type casting in XrGraphicsBinding.cc The line `oxr_binding.egl.getProcAddress = eglGetProcAddress` supposedly needs a type casting for it to compile successfully under llvm16. --- intern/ghost/intern/GHOST_XrGraphicsBinding.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intern/ghost/intern/GHOST_XrGraphicsBinding.cc b/intern/ghost/intern/GHOST_XrGraphicsBinding.cc index 6f1279a9613..dad9fab9337 100644 --- a/intern/ghost/intern/GHOST_XrGraphicsBinding.cc +++ b/intern/ghost/intern/GHOST_XrGraphicsBinding.cc @@ -153,7 +153,7 @@ class GHOST_XrGraphicsBindingOpenGL : public GHOST_IXrGraphicsBinding { # if defined(WITH_GHOST_X11) /* #GHOST_SystemX11. */ oxr_binding.egl.type = XR_TYPE_GRAPHICS_BINDING_EGL_MNDX; - oxr_binding.egl.getProcAddress = eglGetProcAddress; + oxr_binding.egl.getProcAddress = static_cast(eglGetProcAddress); oxr_binding.egl.display = ctx_egl.getDisplay(); oxr_binding.egl.config = ctx_egl.getConfig(); oxr_binding.egl.context = ctx_egl.getContext(); -- 2.30.2 From 76dcf5b15d4789fb00b73a5b817f4768cee4c3ef Mon Sep 17 00:00:00 2001 From: ChengduLittleA Date: Tue, 5 Sep 2023 10:11:08 +0800 Subject: [PATCH 2/3] Use XR_CURRENT_API_VERSION for different type casting --- intern/ghost/intern/GHOST_XrGraphicsBinding.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/intern/ghost/intern/GHOST_XrGraphicsBinding.cc b/intern/ghost/intern/GHOST_XrGraphicsBinding.cc index dad9fab9337..4bd47ee4953 100644 --- a/intern/ghost/intern/GHOST_XrGraphicsBinding.cc +++ b/intern/ghost/intern/GHOST_XrGraphicsBinding.cc @@ -153,7 +153,12 @@ class GHOST_XrGraphicsBindingOpenGL : public GHOST_IXrGraphicsBinding { # if defined(WITH_GHOST_X11) /* #GHOST_SystemX11. */ oxr_binding.egl.type = XR_TYPE_GRAPHICS_BINDING_EGL_MNDX; +# if XR_CURRENT_API_VERSION >= XR_MAKE_VERSION(1, 0, 29) + oxr_binding.egl.getProcAddress = static_cast( + eglGetProcAddress); +# else oxr_binding.egl.getProcAddress = static_cast(eglGetProcAddress); +# endif oxr_binding.egl.display = ctx_egl.getDisplay(); oxr_binding.egl.config = ctx_egl.getConfig(); oxr_binding.egl.context = ctx_egl.getContext(); -- 2.30.2 From d36d8580c45db2e1c0191b21c00d30e737d132f6 Mon Sep 17 00:00:00 2001 From: ChengduLittleA Date: Wed, 6 Sep 2023 10:02:16 +0800 Subject: [PATCH 3/3] use `reinterpret_cast` --- intern/ghost/intern/GHOST_XrGraphicsBinding.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/intern/ghost/intern/GHOST_XrGraphicsBinding.cc b/intern/ghost/intern/GHOST_XrGraphicsBinding.cc index 4bd47ee4953..390fd8818b7 100644 --- a/intern/ghost/intern/GHOST_XrGraphicsBinding.cc +++ b/intern/ghost/intern/GHOST_XrGraphicsBinding.cc @@ -154,10 +154,11 @@ class GHOST_XrGraphicsBindingOpenGL : public GHOST_IXrGraphicsBinding { /* #GHOST_SystemX11. */ oxr_binding.egl.type = XR_TYPE_GRAPHICS_BINDING_EGL_MNDX; # if XR_CURRENT_API_VERSION >= XR_MAKE_VERSION(1, 0, 29) - oxr_binding.egl.getProcAddress = static_cast( + oxr_binding.egl.getProcAddress = reinterpret_cast( eglGetProcAddress); # else - oxr_binding.egl.getProcAddress = static_cast(eglGetProcAddress); + oxr_binding.egl.getProcAddress = reinterpret_cast( + eglGetProcAddress); # endif oxr_binding.egl.display = ctx_egl.getDisplay(); oxr_binding.egl.config = ctx_egl.getConfig(); -- 2.30.2