aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortomaka <pierre.krieger1708@gmail.com>2015-04-03 13:54:20 +0200
committertomaka <pierre.krieger1708@gmail.com>2015-04-03 13:54:20 +0200
commit424cc5ea4909e9e57a1d14b6ad6a397e992ab6fb (patch)
tree57cb8e314f556af0713e3a8d53351935860dd0d2
parent52fa3c83827f0ba084280d24171c2c60299c6cef (diff)
parent4d81cc2df1e1a4867a8c874a39365f90b26e2cdb (diff)
downloadglutin-424cc5ea4909e9e57a1d14b6ad6a397e992ab6fb.tar.gz
glutin-424cc5ea4909e9e57a1d14b6ad6a397e992ab6fb.zip
Merge pull request #347 from tomaka/win32-pixel-format-details
Fix missing parameter for pixel formats infos on win32
-rw-r--r--build.rs1
-rw-r--r--src/lib.rs4
-rw-r--r--src/win32/init.rs17
3 files changed, 16 insertions, 6 deletions
diff --git a/build.rs b/build.rs
index 9925e2d..8e3b0b1 100644
--- a/build.rs
+++ b/build.rs
@@ -27,6 +27,7 @@ fn main() {
"WGL_ARB_create_context_profile".to_string(),
"WGL_ARB_extensions_string".to_string(),
"WGL_ARB_framebuffer_sRGB".to_string(),
+ "WGL_ARB_multisample".to_string(),
"WGL_ARB_pixel_format".to_string(),
"WGL_EXT_create_context_es2_profile".to_string(),
"WGL_EXT_extensions_string".to_string(),
diff --git a/src/lib.rs b/src/lib.rs
index 1eea9a4..1e10768 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -332,10 +332,6 @@ impl<'a> BuilderAttribs<'a> {
continue;
}
- if self.multisampling.is_some() && format.multisampling.is_none() {
- continue;
- }
-
current_software_result = Some((id.clone(), format.clone()));
if format.hardware_accelerated {
current_result = Some((id, format));
diff --git a/src/win32/init.rs b/src/win32/init.rs
index 5cf4021..d83c90f 100644
--- a/src/win32/init.rs
+++ b/src/win32/init.rs
@@ -490,8 +490,21 @@ unsafe fn enumerate_arb_pixel_formats(extra: &gl::wgl_extra::Wgl, hdc: &WindowWr
stencil_bits: get_info(index, gl::wgl_extra::STENCIL_BITS_ARB) as u8,
stereoscopy: get_info(index, gl::wgl_extra::STEREO_ARB) != 0,
double_buffer: get_info(index, gl::wgl_extra::DOUBLE_BUFFER_ARB) != 0,
- multisampling: None, // FIXME:
- srgb: false, // FIXME:
+ multisampling: {
+ if is_extension_supported(extra, hdc, "WGL_ARB_multisample") {
+ match get_info(index, gl::wgl_extra::SAMPLES_ARB) {
+ 0 => None,
+ a => Some(a as u16),
+ }
+ } else {
+ None
+ }
+ },
+ srgb: if is_extension_supported(extra, hdc, "WGL_ARB_framebuffer_sRGB") {
+ get_info(index, gl::wgl_extra::FRAMEBUFFER_SRGB_CAPABLE_ARB) != 0
+ } else {
+ false
+ },
}, index as libc::c_int));
}