aboutsummaryrefslogtreecommitdiffstats
path: root/src/api/cocoa/mod.rs
diff options
context:
space:
mode:
authortomaka <pierre.krieger1708@gmail.com>2015-12-20 10:58:28 +0100
committertomaka <pierre.krieger1708@gmail.com>2015-12-20 10:58:28 +0100
commit1f5f997a68ec411fc3409a35f2c5e118811f3cd0 (patch)
treea5001d48c8d54373851f87b56d99ac7dc662117f /src/api/cocoa/mod.rs
parent87f0edea7ba872720152b5da296f0bd052d4c954 (diff)
parent61bca52217471eca4c4aff1dd84b980966be4bfc (diff)
downloadglutin-1f5f997a68ec411fc3409a35f2c5e118811f3cd0.tar.gz
glutin-1f5f997a68ec411fc3409a35f2c5e118811f3cd0.zip
Merge pull request #677 from tomaka/pf
No longer manually enumerate pixel formats
Diffstat (limited to 'src/api/cocoa/mod.rs')
-rw-r--r--src/api/cocoa/mod.rs20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/api/cocoa/mod.rs b/src/api/cocoa/mod.rs
index c9e35a8..eae344c 100644
--- a/src/api/cocoa/mod.rs
+++ b/src/api/cocoa/mod.rs
@@ -13,6 +13,7 @@ use GlProfile;
use GlRequest;
use PixelFormat;
use PixelFormatRequirements;
+use ReleaseBehavior;
use Robustness;
use WindowAttributes;
use native_monitor::NativeMonitorId;
@@ -491,6 +492,8 @@ impl Window {
let alpha_depth = pf_reqs.alpha_bits.unwrap_or(8);
let color_depth = pf_reqs.color_bits.unwrap_or(24) + alpha_depth;
+ // TODO: handle hardware_accelerated parameter of pf_reqs
+
let mut attributes = vec![
NSOpenGLPFADoubleBuffer as u32,
NSOpenGLPFAClosestPolicy as u32,
@@ -501,10 +504,19 @@ impl Window {
NSOpenGLPFAOpenGLProfile as u32, profile,
];
- // A color depth higher than 64 implies we're using either 16-bit
- // floats or 32-bit floats and OS X requires a flag to be set
- // accordingly.
- if color_depth >= 64 {
+ if pf_reqs.release_behavior != ReleaseBehavior::Flush {
+ return Err(CreationError::NoAvailablePixelFormat);
+ }
+
+ if pf_reqs.stereoscopy {
+ unimplemented!(); // TODO:
+ }
+
+ if pf_reqs.double_buffer == Some(false) {
+ unimplemented!(); // TODO:
+ }
+
+ if pf_reqs.float_color_buffer {
attributes.push(NSOpenGLPFAColorFloat as u32);
}