aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Kaaman <trundmatu@gmail.com>2015-06-15 23:28:29 +0200
committerFelix Kaaman <trundmatu@gmail.com>2015-06-16 09:00:02 +0200
commita8fef35dbf320448ba53af77bd8025be5022d9f4 (patch)
treeae044dcd6ed5d702510f750575dc1bf48bbba7c4
parente48c853b9c7a617bf8ba5f31b5fb2088c90c0ee7 (diff)
downloadglutin-a8fef35dbf320448ba53af77bd8025be5022d9f4.tar.gz
glutin-a8fef35dbf320448ba53af77bd8025be5022d9f4.zip
Make legacy functions crash on osx core contexts
-rw-r--r--Cargo.toml1
-rw-r--r--examples/cursor.rs2
-rw-r--r--examples/fullscreen.rs1
-rw-r--r--examples/grabbing.rs2
-rw-r--r--examples/multiwindow.rs6
-rw-r--r--examples/transparent.rs4
-rw-r--r--examples/vsync.rs4
-rw-r--r--examples/window.rs2
-rw-r--r--src/api/cocoa/mod.rs6
-rw-r--r--src/lib.rs2
10 files changed, 22 insertions, 8 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 07e99be..1643abd 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -32,6 +32,7 @@ version = "0"
[target.x86_64-apple-darwin.dependencies]
objc = "0.1"
+cgl = "0"
cocoa = "0"
core-foundation = "0"
core-graphics = "0"
diff --git a/examples/cursor.rs b/examples/cursor.rs
index d3beb84..8b0d818 100644
--- a/examples/cursor.rs
+++ b/examples/cursor.rs
@@ -17,7 +17,7 @@ fn main() { println!("This example requires glutin to be compiled with the `wind
#[cfg(feature = "window")]
fn main() {
- let window = glutin::Window::new().unwrap();
+ let window = glutin::WindowBuilder::new().with_gl_profile(glutin::GlProfile::Compatibility).build().unwrap();
window.set_title("A fantastic window!");
unsafe { window.make_current() };
diff --git a/examples/fullscreen.rs b/examples/fullscreen.rs
index d64224b..246a162 100644
--- a/examples/fullscreen.rs
+++ b/examples/fullscreen.rs
@@ -35,6 +35,7 @@ fn main() {
};
let window = glutin::WindowBuilder::new()
+ .with_gl_profile(glutin::GlProfile::Compatibility)
.with_title("Hello world!".to_string())
.with_fullscreen(monitor)
.build()
diff --git a/examples/grabbing.rs b/examples/grabbing.rs
index 8a46750..738a939 100644
--- a/examples/grabbing.rs
+++ b/examples/grabbing.rs
@@ -16,7 +16,7 @@ fn main() { println!("This example requires glutin to be compiled with the `wind
#[cfg(feature = "window")]
fn main() {
- let window = glutin::Window::new().unwrap();
+ let window = glutin::WindowBuilder::new().with_gl_profile(glutin::GlProfile::Compatibility).build().unwrap();
window.set_title("glutin - Cursor grabbing test");
unsafe { window.make_current() };
diff --git a/examples/multiwindow.rs b/examples/multiwindow.rs
index a9a5bac..503e0a0 100644
--- a/examples/multiwindow.rs
+++ b/examples/multiwindow.rs
@@ -16,9 +16,9 @@ fn main() { println!("This example requires glutin to be compiled with the `wind
#[cfg(feature = "window")]
fn main() {
- let window1 = glutin::Window::new().unwrap();
- let window2 = glutin::Window::new().unwrap();
- let window3 = glutin::Window::new().unwrap();
+ let window1 = glutin::WindowBuilder::new().with_gl_profile(glutin::GlProfile::Compatibility).build().unwrap();
+ let window2 = glutin::WindowBuilder::new().with_gl_profile(glutin::GlProfile::Compatibility).build().unwrap();
+ let window3 = glutin::WindowBuilder::new().with_gl_profile(glutin::GlProfile::Compatibility).build().unwrap();
let t1 = thread::spawn(move || {
run(window1, (0.0, 1.0, 0.0, 1.0));
diff --git a/examples/transparent.rs b/examples/transparent.rs
index 553c16d..01c084a 100644
--- a/examples/transparent.rs
+++ b/examples/transparent.rs
@@ -19,7 +19,9 @@ fn resize_callback(width: u32, height: u32) {
#[cfg(feature = "window")]
fn main() {
- let mut window = glutin::WindowBuilder::new().with_decorations(false).with_transparency(true)
+ let mut window = glutin::WindowBuilder::new().with_gl_profile(glutin::GlProfile::Compatibility)
+ .with_decorations(false)
+ .with_transparency(true)
.build().unwrap();
window.set_title("A fantastic window!");
window.set_window_resize_callback(Some(resize_callback as fn(u32, u32)));
diff --git a/examples/vsync.rs b/examples/vsync.rs
index ec9ea79..4ae2598 100644
--- a/examples/vsync.rs
+++ b/examples/vsync.rs
@@ -23,7 +23,9 @@ fn main() {
println!("Vsync example. This example may panic if your driver or your system forces \
you out of vsync. This is intended when `build_strict` is used.");
- let mut window = glutin::WindowBuilder::new().with_vsync().build_strict().unwrap();
+ let mut window = glutin::WindowBuilder::new().with_gl_profile(glutin::GlProfile::Compatibility)
+ .with_vsync()
+ .build_strict().unwrap();
window.set_window_resize_callback(Some(resize_callback as fn(u32, u32)));
unsafe { window.make_current() };
diff --git a/examples/window.rs b/examples/window.rs
index 4077399..d4e1a8d 100644
--- a/examples/window.rs
+++ b/examples/window.rs
@@ -19,7 +19,7 @@ fn resize_callback(width: u32, height: u32) {
#[cfg(feature = "window")]
fn main() {
- let mut window = glutin::Window::new().unwrap();
+ let mut window = glutin::WindowBuilder::new().with_gl_profile(glutin::GlProfile::Compatibility).build().unwrap();
window.set_title("A fantastic window!");
window.set_window_resize_callback(Some(resize_callback as fn(u32, u32)));
unsafe { window.make_current() };
diff --git a/src/api/cocoa/mod.rs b/src/api/cocoa/mod.rs
index 877aba7..ba5710d 100644
--- a/src/api/cocoa/mod.rs
+++ b/src/api/cocoa/mod.rs
@@ -17,6 +17,10 @@ use native_monitor::NativeMonitorId;
use objc::runtime::{Class, Object, Sel, BOOL, YES, NO};
use objc::declare::ClassDecl;
+use cgl;
+use cgl::{CGLEnable, kCGLCECrashOnRemovedFunctions, CGLSetParameter, kCGLCPSurfaceOpacity};
+use cgl::CGLContextObj as CGL_CGLContextObj;
+
use cocoa::base::{id, nil};
use cocoa::foundation::{NSAutoreleasePool, NSDate, NSDefaultRunLoopMode, NSPoint, NSRect, NSSize,
NSString, NSUInteger};
@@ -572,6 +576,8 @@ impl Window {
let value = if builder.vsync { 1 } else { 0 };
cxt.setValues_forParameter_(&value, NSOpenGLContextParameter::NSOpenGLCPSwapInterval);
+ CGLEnable(cxt.CGLContextObj(), kCGLCECrashOnRemovedFunctions);
+
Ok((cxt, pf))
} else {
Err(CreationError::NotSupported)
diff --git a/src/lib.rs b/src/lib.rs
index 784ea95..8171a5c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -46,6 +46,8 @@ extern crate dwmapi;
#[macro_use]
extern crate objc;
#[cfg(target_os = "macos")]
+extern crate cgl;
+#[cfg(target_os = "macos")]
extern crate cocoa;
#[cfg(target_os = "macos")]
extern crate core_foundation;