Quellcode durchsuchen

Backends: OpenGL3: Update GL3W based imgui_impl_opengl3_loader.h to load "libGL.so" and variants, fixing regression on distros missing a symlink. (#6983)

Amend 0f50b52da
ocornut vor 1 Jahr
Ursprung
Commit
a3eea8a75a
3 geänderte Dateien mit 8 neuen und 1 gelöschten Zeilen
  1. 2 1
      backends/imgui_impl_opengl3.cpp
  2. 4 0
      backends/imgui_impl_opengl3_loader.h
  3. 2 0
      docs/CHANGELOG.txt

+ 2 - 1
backends/imgui_impl_opengl3.cpp

@@ -22,7 +22,8 @@
 
 // CHANGELOG
 // (minor and older changes stripped away, please see git history for details)
-//  2023-11-08: OpenGL: Update GL3W based imgui_impl_opengl3_loader.h to load "libGL.so" instead of "libGL.so.1", accomodating for NetBSD systems having only "libGL.so.3" available. (#6983)
+//  2024-01-09: OpenGL: Update GL3W based imgui_impl_opengl3_loader.h to load "libGL.so" and variants, fixing regression on distros missing a symlink.
+//  2023-11-08: OpenGL: Update GL3W based imgui_impl_opengl3_loader.h to load "libGL.so" instead of "libGL.so.1", accommodating for NetBSD systems having only "libGL.so.3" available. (#6983)
 //  2023-10-05: OpenGL: Rename symbols in our internal loader so that LTO compilation with another copy of gl3w is possible. (#6875, #6668, #4445)
 //  2023-06-20: OpenGL: Fixed erroneous use glGetIntegerv(GL_CONTEXT_PROFILE_MASK) on contexts lower than 3.2. (#6539, #6333)
 //  2023-05-09: OpenGL: Support for glBindSampler() backup/restore on ES3. (#6375)

+ 4 - 0
backends/imgui_impl_opengl3_loader.h

@@ -668,6 +668,10 @@ static int open_libgl(void)
 {
     // While most systems use libGL.so.1, NetBSD seems to use that libGL.so.3. See https://github.com/ocornut/imgui/issues/6983
     libgl = dlopen("libGL.so", RTLD_LAZY | RTLD_LOCAL);
+    if (!libgl)
+        libgl = dlopen("libGL.so.1", RTLD_LAZY | RTLD_LOCAL);
+    if (!libgl)
+        libgl = dlopen("libGL.so.3", RTLD_LAZY | RTLD_LOCAL);
     if (!libgl)
         return GL3W_ERROR_LIBRARY_OPEN;
     *(void **)(&glx_get_proc_address) = dlsym(libgl, "glXGetProcAddressARB");

+ 2 - 0
docs/CHANGELOG.txt

@@ -101,6 +101,8 @@ Other changes:
   register canvas selector and auto-resize GLFW window. (#6751) [@Traveller23, @ypujante]
 - Backends: GLFW: Fixed Windows specific hooks to use Unicode version of WndProc even when
   compiling in MBCS mode. (#7174) [@kimidaisuki22]
+- Backends: OpenGL3: Update GL3W based imgui_impl_opengl3_loader.h to load libGL.so variants in
+  case of missing symlink. Fix 1.90 regression for some distros. (#6983)
 - Backends: Vulkan: Fixed mismatching allocator passed to vkCreateCommandPool() vs
   vkDestroyCommandPool(). (#7075) [@FoonTheRaccoon]
 - Backends: Vulkan: Added MinAllocationSize field in ImGui_ImplVulkan_InitInfo to workaround zealous