Fix libGL not being found on NetBSD

Fixes #646.
master
Camilla Berglund ago%!(EXTRA string=10 years)
parent 9ac9c61433
commit 486354d63f
  1. 1
      README.md
  2. 21
      src/glx_context.c

@ -82,6 +82,7 @@ used by the tests and examples and are not required to build the library.
- [WGL] Removed dependency on external WGL headers
- [GLX] Replaced legacy renderable with `GLXWindow`
- [GLX] Removed dependency on external GLX headers
- [GLX] Bugfix: NetBSD does not provide `libGL.so.1`
- [EGL] Removed dependency on external EGL headers

@ -152,19 +152,32 @@ static GLXContext createLegacyContext(_GLFWwindow* window,
//
int _glfwInitContextAPI(void)
{
int i;
const char* sonames[] =
{
#if defined(__CYGWIN__)
const char* soname = "libGL-1.so";
"libGL-1.so",
#else
const char* soname = "libGL.so.1";
"libGL.so.1",
"libGL.so",
#endif
NULL
};
if (!_glfwCreateContextTLS())
return GLFW_FALSE;
_glfw.glx.handle = dlopen(soname, RTLD_LAZY | RTLD_GLOBAL);
for (i = 0; sonames[i]; i++)
{
_glfw.glx.handle = dlopen(sonames[i], RTLD_LAZY | RTLD_GLOBAL);
if (_glfw.glx.handle)
break;
}
if (!_glfw.glx.handle)
{
_glfwInputError(GLFW_API_UNAVAILABLE, "GLX: %s", dlerror());
_glfwInputError(GLFW_API_UNAVAILABLE, "GLX: Failed to load GLX");
return GLFW_FALSE;
}

Loading…
Cancel
Save