aboutsummaryrefslogtreecommitdiffstats
path: root/src/api
diff options
context:
space:
mode:
authortomaka <pierre.krieger1708@gmail.com>2015-07-22 15:52:02 +0200
committertomaka <pierre.krieger1708@gmail.com>2015-07-22 15:52:02 +0200
commitbce2b1d830f35f7175ae0ab735531da886db96cd (patch)
treebbf9b27b67b9b762b31767d49abc3a3ab8b152fc /src/api
parent0e3ce759694f55f030418e47c523940efb9ff00d (diff)
parent4b17b7fdbb86eba48eac711b7f7aa33fc23635ec (diff)
downloadglutin-bce2b1d830f35f7175ae0ab735531da886db96cd.tar.gz
glutin-bce2b1d830f35f7175ae0ab735531da886db96cd.zip
Merge pull request #537 from tomaka/filter-glx-fbconfigs
Filter invalid FBConfigs
Diffstat (limited to 'src/api')
-rw-r--r--src/api/glx/mod.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/api/glx/mod.rs b/src/api/glx/mod.rs
index f640bee..e17f73d 100644
--- a/src/api/glx/mod.rs
+++ b/src/api/glx/mod.rs
@@ -358,6 +358,22 @@ unsafe fn enumerate_configs(glx: &ffi::glx::Glx, xlib: &ffi::Xlib, display: *mut
};
Ok(configs.into_iter().filter_map(|config| {
+ if get_attrib(ffi::glx::DRAWABLE_TYPE as libc::c_int, config) &
+ ffi::glx::WINDOW_BIT as libc::c_int == 0
+ {
+ return None;
+ }
+
+ if get_attrib(ffi::glx::VISUAL_ID as libc::c_int, config) == 0 {
+ return None;
+ }
+
+ if get_attrib(ffi::glx::RENDER_TYPE as libc::c_int, config) &
+ ffi::glx::RGBA_BIT as libc::c_int == 0
+ {
+ return None;
+ }
+
let caveat = get_attrib(ffi::glx::CONFIG_CAVEAT as libc::c_int, config);
if caveat == ffi::glx::NON_CONFORMANT_CONFIG as libc::c_int {
return None;