From f6c26ec593ba96d89cb3476c815d6f33a915bfdd Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Tue, 16 Jun 2015 10:15:31 +0200 Subject: Handle errors from MakeCurrent and SwapBuffers --- src/api/wgl/mod.rs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/api/wgl/mod.rs') diff --git a/src/api/wgl/mod.rs b/src/api/wgl/mod.rs index d1f42d2..c33054e 100644 --- a/src/api/wgl/mod.rs +++ b/src/api/wgl/mod.rs @@ -1,6 +1,7 @@ #![cfg(any(target_os = "windows"))] use BuilderAttribs; +use ContextError; use CreationError; use GlContext; use GlRequest; @@ -156,9 +157,12 @@ impl Context { } impl GlContext for Context { - unsafe fn make_current(&self) { - // TODO: check return value - gl::wgl::MakeCurrent(self.hdc as *const _, self.context.0 as *const _); + unsafe fn make_current(&self) -> Result<(), ContextError> { + if gl::wgl::MakeCurrent(self.hdc as *const _, self.context.0 as *const _) != 0 { + Ok(()) + } else { + Err(ContextError::IoError(io::Error::last_os_error())) + } } fn is_current(&self) -> bool { @@ -176,9 +180,11 @@ impl GlContext for Context { } } - fn swap_buffers(&self) { - unsafe { - gdi32::SwapBuffers(self.hdc); + fn swap_buffers(&self) -> Result<(), ContextError> { + if unsafe { gdi32::SwapBuffers(self.hdc) } != 0 { + Ok(()) + } else { + Err(ContextError::IoError(io::Error::last_os_error())) } } -- cgit v1.2.3