From f6c26ec593ba96d89cb3476c815d6f33a915bfdd Mon Sep 17 00:00:00 2001
From: Pierre Krieger <pierre.krieger1708@gmail.com>
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')

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