Fix libGL not being found on NetBSD

Fixes #646.
This commit is contained in:
Camilla Berglund 2015-11-17 23:29:08 +01:00
parent 9ac9c61433
commit 486354d63f
2 changed files with 18 additions and 4 deletions

View File

@ -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

View File

@ -151,20 +151,33 @@ static GLXContext createLegacyContext(_GLFWwindow* window,
// Initialize GLX
//
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;
}