diff options
author | tomaka <pierre.krieger1708@gmail.com> | 2014-11-27 10:48:36 +0100 |
---|---|---|
committer | tomaka <pierre.krieger1708@gmail.com> | 2014-11-27 10:48:36 +0100 |
commit | dee448628a7f43ebfc6009c89c938b741d5d6540 (patch) | |
tree | 941c63a905948ca2cb4825af095031980b49d5f6 | |
parent | 749c47d8c20af078b06e8506b68a54e3799c1a8b (diff) | |
parent | 23b108d4366ddf3bf134c443b19bff609247c1fd (diff) | |
download | glutin-dee448628a7f43ebfc6009c89c938b741d5d6540.tar.gz glutin-dee448628a7f43ebfc6009c89c938b741d5d6540.zip |
Merge pull request #142 from DavidPartouche/cocoa_vsync
Added swap interval to osx
-rw-r--r-- | src/osx/mod.rs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/osx/mod.rs b/src/osx/mod.rs index 7209aa4..8ab3efd 100644 --- a/src/osx/mod.rs +++ b/src/osx/mod.rs @@ -75,7 +75,7 @@ impl Window { unimplemented!() } - Window::new_impl(builder.dimensions, builder.title.as_slice(), builder.monitor, true) + Window::new_impl(builder.dimensions, builder.title.as_slice(), builder.monitor, builder.vsync, true) } } @@ -98,7 +98,8 @@ extern fn window_should_close(this: id, _: id) -> id { } impl Window { - fn new_impl(dimensions: Option<(uint, uint)>, title: &str, monitor: Option<MonitorID>, visible: bool) -> Result<Window, CreationError> { + fn new_impl(dimensions: Option<(uint, uint)>, title: &str, monitor: Option<MonitorID>, + vsync: bool, visible: bool) -> Result<Window, CreationError> { let app = match Window::create_app() { Some(app) => app, None => { return Err(OsError(format!("Couldn't create NSApplication"))); }, @@ -112,7 +113,7 @@ impl Window { None => { return Err(OsError(format!("Couldn't create NSView"))); }, }; - let context = match Window::create_context(view) { + let context = match Window::create_context(view, vsync) { Some(context) => context, None => { return Err(OsError(format!("Couldn't create OpenGL context"))); }, }; @@ -219,7 +220,7 @@ impl Window { } } - fn create_context(view: id) -> Option<id> { + fn create_context(view: id, vsync: bool) -> Option<id> { unsafe { let attributes = [ NSOpenGLPFADoubleBuffer as uint, @@ -241,6 +242,10 @@ impl Window { None } else { context.setView_(view); + if vsync { + let value = 1; + context.setValues_forParameter_(&value, NSOpenGLCPSwapInterval); + } Some(context) } } |