aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib.rs5
-rw-r--r--src/win32/init.rs9
2 files changed, 8 insertions, 6 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 138f87b..ecb6980 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -197,6 +197,7 @@ pub enum MouseCursor {
#[allow(missing_docs)]
#[derive(Debug)]
pub struct PixelFormat {
+ pub hardware_accelerated: bool,
pub red_bits: u8,
pub green_bits: u8,
pub blue_bits: u8,
@@ -286,6 +287,10 @@ impl<'a> BuilderAttribs<'a> {
// TODO: do this more properly
for (id, format) in iter {
+ if !format.hardware_accelerated {
+ continue;
+ }
+
if format.red_bits + format.green_bits + format.blue_bits < self.color_bits.unwrap_or(0) {
continue;
}
diff --git a/src/win32/init.rs b/src/win32/init.rs
index 6fdafea..260b0ab 100644
--- a/src/win32/init.rs
+++ b/src/win32/init.rs
@@ -411,13 +411,8 @@ fn enumerate_native_pixel_formats(hdc: winapi::HDC) -> Vec<(PixelFormat, libc::c
if (output.dwFlags & winapi::PFD_DRAW_TO_WINDOW) == 0 {
continue;
}
- if (output.dwFlags & winapi::PFD_SUPPORT_OPENGL) == 0 {
- continue;
- }
- if (output.dwFlags & winapi::PFD_GENERIC_ACCELERATED) == 0 &&
- (output.dwFlags & winapi::PFD_GENERIC_FORMAT) == 0
- {
+ if (output.dwFlags & winapi::PFD_SUPPORT_OPENGL) == 0 {
continue;
}
@@ -426,6 +421,7 @@ fn enumerate_native_pixel_formats(hdc: winapi::HDC) -> Vec<(PixelFormat, libc::c
}
result.push((PixelFormat {
+ hardware_accelerated: (output.dwFlags & winapi::PFD_GENERIC_FORMAT) == 0,
red_bits: output.cRedBits,
green_bits: output.cGreenBits,
blue_bits: output.cBlueBits,
@@ -476,6 +472,7 @@ fn enumerate_arb_pixel_formats(extra: &gl::wgl_extra::Wgl, hdc: winapi::HDC)
}
result.push((PixelFormat {
+ hardware_accelerated: true,
red_bits: get_info(index, gl::wgl_extra::RED_BITS_ARB) as u8,
green_bits: get_info(index, gl::wgl_extra::GREEN_BITS_ARB) as u8,
blue_bits: get_info(index, gl::wgl_extra::BLUE_BITS_ARB) as u8,