aboutsummaryrefslogtreecommitdiffstats
path: root/fixosxcontextversion.patch
diff options
context:
space:
mode:
Diffstat (limited to 'fixosxcontextversion.patch')
-rw-r--r--fixosxcontextversion.patch218
1 files changed, 218 insertions, 0 deletions
diff --git a/fixosxcontextversion.patch b/fixosxcontextversion.patch
new file mode 100644
index 0000000..14a2301
--- /dev/null
+++ b/fixosxcontextversion.patch
@@ -0,0 +1,218 @@
+From 86af6b6387918ea93fe5ce4cae2764a1d196061e Mon Sep 17 00:00:00 2001
+From: Patrick Horlebein <patrick@ilovepatrick.de>
+Date: Mon, 29 Dec 2014 13:26:44 +0100
+Subject: [PATCH 1/5] Started adding support for selection OpenGL versions on
+ OS X. Needs issue #176 to be fixed.
+
+---
+ src/osx/mod.rs | 27 +++++++++++++++++++++++----
+ 1 file changed, 23 insertions(+), 4 deletions(-)
+
+diff --git a/src/osx/mod.rs b/src/osx/mod.rs
+index 7df6603..59b6577 100644
+--- a/src/osx/mod.rs
++++ b/src/osx/mod.rs
+@@ -44,6 +44,15 @@ static mut alt_pressed: bool = false;
+ static DELEGATE_NAME: &'static [u8] = b"glutin_window_delegate\0";
+ static DELEGATE_STATE_IVAR: &'static [u8] = b"glutin_state";
+
++// TODO: Should be added to cocoa bindings
++#[allow(non_camel_case_types)]
++#[deriving(Show)]
++enum NSOpenGLPFAOpenGLProfiles {
++ NSOpenGLProfileVersionLegacy = 0x1000,
++ NSOpenGLProfileVersion3_2Core = 0x3200,
++ NSOpenGLProfileVersion4_1Core = 0x4100
++}
++
+ struct DelegateState<'a> {
+ is_closed: bool,
+ context: id,
+@@ -68,7 +77,7 @@ impl Window {
+ unimplemented!()
+ }
+
+- Window::new_impl(builder.dimensions, builder.title.as_slice(), builder.monitor, builder.vsync, builder.visible)
++ Window::new_impl(builder.dimensions, builder.title.as_slice(), builder.monitor, builder.vsync, builder.visible, builder.gl_version)
+ }
+ }
+
+@@ -130,7 +139,7 @@ extern fn window_did_resize(this: id, _: id) -> id {
+
+ impl Window {
+ fn new_impl(dimensions: Option<(uint, uint)>, title: &str, monitor: Option<MonitorID>,
+- vsync: bool, visible: bool) -> Result<Window, CreationError> {
++ vsync: bool, visible: bool, gl_version: Option<(uint, uint)>) -> Result<Window, CreationError> {
+ let app = match Window::create_app() {
+ Some(app) => app,
+ None => { return Err(OsError(format!("Couldn't create NSApplication"))); },
+@@ -144,7 +153,7 @@ impl Window {
+ None => { return Err(OsError(format!("Couldn't create NSView"))); },
+ };
+
+- let context = match Window::create_context(view, vsync) {
++ let context = match Window::create_context(view, vsync, gl_version) {
+ Some(context) => context,
+ None => { return Err(OsError(format!("Couldn't create OpenGL context"))); },
+ };
+@@ -260,7 +269,16 @@ impl Window {
+ }
+ }
+
+- fn create_context(view: id, vsync: bool) -> Option<id> {
++ fn create_context(view: id, vsync: bool, gl_version: Option<(uint, uint)>) -> Option<id> {
++ let profile = {
++ match gl_version {
++ None => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersionLegacy as uint,
++ Some((0...2, _)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersionLegacy as uint,
++ Some((3, 0)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersionLegacy as uint,
++ Some((3, 1...2)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersion3_2Core as uint,
++ Some((_, _)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersion4_1Core as uint,
++ }
++ };
+ unsafe {
+ let attributes = [
+ NSOpenGLPFADoubleBuffer as uint,
+@@ -269,6 +287,7 @@ impl Window {
+ NSOpenGLPFAAlphaSize as uint, 8,
+ NSOpenGLPFADepthSize as uint, 24,
+ NSOpenGLPFAStencilSize as uint, 8,
++ NSOpenGLPFAOpenGLProfile as uint, profile,
+ 0
+ ];
+
+--
+1.9.3 (Apple Git-50)
+
+
+From 1b0064f9f780ab8a53e7b5a7a33f2fd8c53aab08 Mon Sep 17 00:00:00 2001
+From: Patrick Horlebein <patrick@ilovepatrick.de>
+Date: Mon, 29 Dec 2014 13:27:24 +0100
+Subject: [PATCH 2/5] Fixed deprecation warnings
+
+---
+ src/osx/mod.rs | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/osx/mod.rs b/src/osx/mod.rs
+index 59b6577..e2b9bc2 100644
+--- a/src/osx/mod.rs
++++ b/src/osx/mod.rs
+@@ -475,8 +475,8 @@ impl Window {
+ }
+
+ pub fn get_proc_address(&self, _addr: &str) -> *const () {
+- let symbol_name: CFString = from_str(_addr).unwrap();
+- let framework_name: CFString = from_str("com.apple.opengl").unwrap();
++ let symbol_name = _addr.parse::<CFString>().unwrap();
++ let framework_name = "com.apple.opengl".parse::<CFString>().unwrap();
+ let framework = unsafe {
+ CFBundleGetBundleWithIdentifier(framework_name.as_concrete_TypeRef())
+ };
+--
+1.9.3 (Apple Git-50)
+
+
+From 09cf026a9de2e1aef43307d64d41a0251159c113 Mon Sep 17 00:00:00 2001
+From: Patrick Horlebein <patrick@ilovepatrick.de>
+Date: Mon, 29 Dec 2014 13:46:44 +0100
+Subject: [PATCH 3/5] Minor match clause cleanup
+
+---
+ src/osx/mod.rs | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/src/osx/mod.rs b/src/osx/mod.rs
+index e2b9bc2..ce02779 100644
+--- a/src/osx/mod.rs
++++ b/src/osx/mod.rs
+@@ -272,9 +272,7 @@ impl Window {
+ fn create_context(view: id, vsync: bool, gl_version: Option<(uint, uint)>) -> Option<id> {
+ let profile = {
+ match gl_version {
+- None => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersionLegacy as uint,
+- Some((0...2, _)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersionLegacy as uint,
+- Some((3, 0)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersionLegacy as uint,
++ None | Some((0...2, _)) | Some((3, 0)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersionLegacy as uint,
+ Some((3, 1...2)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersion3_2Core as uint,
+ Some((_, _)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersion4_1Core as uint,
+ }
+--
+1.9.3 (Apple Git-50)
+
+
+From b0dddb2d3f10c90128ab250838b314acca131061 Mon Sep 17 00:00:00 2001
+From: Patrick Horlebein <patrick@ilovepatrick.de>
+Date: Tue, 30 Dec 2014 17:01:37 +0100
+Subject: [PATCH 4/5] Fixed missing std::ascii::AsciiExt import
+
+---
+ src/osx/mod.rs | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/osx/mod.rs b/src/osx/mod.rs
+index ce02779..739aa77 100644
+--- a/src/osx/mod.rs
++++ b/src/osx/mod.rs
+@@ -4,6 +4,7 @@ pub use self::headless::HeadlessContext;
+ use {CreationError, Event};
+ use CreationError::OsError;
+ use libc;
++use std::ascii::AsciiExt;
+
+ #[cfg(feature = "window")]
+ use WindowBuilder;
+--
+1.9.3 (Apple Git-50)
+
+
+From 0e64651db8f19378d7c183b21c0e7d692380e570 Mon Sep 17 00:00:00 2001
+From: Patrick Horlebein <patrick@ilovepatrick.de>
+Date: Tue, 30 Dec 2014 17:02:49 +0100
+Subject: [PATCH 5/5] Removed NSOpenGLPFAOpenGLProfiles enum in favor of the
+ one defined in the AppKit bindings
+
+---
+ src/osx/mod.rs | 19 ++++---------------
+ 1 file changed, 4 insertions(+), 15 deletions(-)
+
+diff --git a/src/osx/mod.rs b/src/osx/mod.rs
+index 739aa77..83c51a3 100644
+--- a/src/osx/mod.rs
++++ b/src/osx/mod.rs
+@@ -45,15 +45,6 @@ static mut alt_pressed: bool = false;
+ static DELEGATE_NAME: &'static [u8] = b"glutin_window_delegate\0";
+ static DELEGATE_STATE_IVAR: &'static [u8] = b"glutin_state";
+
+-// TODO: Should be added to cocoa bindings
+-#[allow(non_camel_case_types)]
+-#[deriving(Show)]
+-enum NSOpenGLPFAOpenGLProfiles {
+- NSOpenGLProfileVersionLegacy = 0x1000,
+- NSOpenGLProfileVersion3_2Core = 0x3200,
+- NSOpenGLProfileVersion4_1Core = 0x4100
+-}
+-
+ struct DelegateState<'a> {
+ is_closed: bool,
+ context: id,
+@@ -271,12 +262,10 @@ impl Window {
+ }
+
+ fn create_context(view: id, vsync: bool, gl_version: Option<(uint, uint)>) -> Option<id> {
+- let profile = {
+- match gl_version {
+- None | Some((0...2, _)) | Some((3, 0)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersionLegacy as uint,
+- Some((3, 1...2)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersion3_2Core as uint,
+- Some((_, _)) => NSOpenGLPFAOpenGLProfiles::NSOpenGLProfileVersion4_1Core as uint,
+- }
++ let profile = match gl_version {
++ None | Some((0...2, _)) | Some((3, 0)) => NSOpenGLProfileVersionLegacy as uint,
++ Some((3, 1...2)) => NSOpenGLProfileVersion3_2Core as uint,
++ Some((_, _)) => NSOpenGLProfileVersion4_1Core as uint,
+ };
+ unsafe {
+ let attributes = [
+--
+1.9.3 (Apple Git-50)
+