aboutsummaryrefslogtreecommitdiffstats
path: root/src/api/x11/window.rs
diff options
context:
space:
mode:
authorZetok Zalbavar <zetok@openmailbox.org>2015-08-14 14:56:17 +0100
committerZetok Zalbavar <zetok@openmailbox.org>2015-08-14 15:08:44 +0100
commit6c73209746331f1fe3bac402b58c1702798f7e62 (patch)
tree6640a550e4471be961214bd578b783de99ae96cb /src/api/x11/window.rs
parent5c60456e16b118f2d2cbbe5344fa887cbeb59cc8 (diff)
downloadglutin-6c73209746331f1fe3bac402b58c1702798f7e62.tar.gz
glutin-6c73209746331f1fe3bac402b58c1702798f7e62.zip
Prefer GLX over EGL
fixes #314 for me. I've "tested" change by running examples (which prior to change simply crashed), but since I did not run those examples successfuly ever before, I don't know whether they worked as intended.
Diffstat (limited to 'src/api/x11/window.rs')
-rw-r--r--src/api/x11/window.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/api/x11/window.rs b/src/api/x11/window.rs
index f6f944d..36b60e4 100644
--- a/src/api/x11/window.rs
+++ b/src/api/x11/window.rs
@@ -351,10 +351,12 @@ impl Window {
let builder_clone = builder.clone();
let context = match builder.gl_version {
GlRequest::Latest | GlRequest::Specific(Api::OpenGl, _) | GlRequest::GlThenGles { .. } => {
- if let Some(ref egl) = display.egl {
- Prototype::Egl(try!(EglContext::new(egl.clone(), &builder_clone, egl::NativeDisplay::X11(Some(display.display as *const _)))))
- } else if let Some(ref glx) = display.glx {
+ // GLX should be preferred over EGL, otherwise crashes may occur
+ // on X11 – issue #314
+ if let Some(ref glx) = display.glx {
Prototype::Glx(try!(GlxContext::new(glx.clone(), &display.xlib, &builder_clone, display.display)))
+ } else if let Some(ref egl) = display.egl {
+ Prototype::Egl(try!(EglContext::new(egl.clone(), &builder_clone, egl::NativeDisplay::X11(Some(display.display as *const _)))))
} else {
return Err(CreationError::NotSupported);
}