diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/api/x11/mod.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/api/x11/mod.rs b/src/api/x11/mod.rs index e615314..29f2bba 100644 --- a/src/api/x11/mod.rs +++ b/src/api/x11/mod.rs @@ -315,10 +315,14 @@ impl Window { let xf86vmode = ffi::Xf86vmode::open().unwrap(); // FIXME: gracious handling let glx = { - let libglx = unsafe { dlopen::dlopen(b"libGL.so\0".as_ptr() as *const _, dlopen::RTLD_NOW) }; + let mut libglx = unsafe { dlopen::dlopen(b"libGL.so.1\0".as_ptr() as *const _, dlopen::RTLD_NOW) }; + if libglx.is_null() { + libglx = unsafe { dlopen::dlopen(b"libGL.so\0".as_ptr() as *const _, dlopen::RTLD_NOW) }; + } if libglx.is_null() { return Err(CreationError::NotSupported); } + ffi::glx::Glx::load_with(|sym| { let sym = CString::new(sym).unwrap(); unsafe { dlopen::dlsym(libglx, sym.as_ptr()) } |