aboutsummaryrefslogtreecommitdiffstats
path: root/src/api/glx/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/glx/mod.rs')
-rw-r--r--src/api/glx/mod.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/api/glx/mod.rs b/src/api/glx/mod.rs
index 885339f..455f6a5 100644
--- a/src/api/glx/mod.rs
+++ b/src/api/glx/mod.rs
@@ -1,6 +1,7 @@
#![cfg(all(target_os = "linux", feature = "window"))]
use BuilderAttribs;
+use ContextError;
use CreationError;
use GlContext;
use GlProfile;
@@ -139,11 +140,13 @@ impl Context {
}
impl GlContext for Context {
- unsafe fn make_current(&self) {
+ unsafe fn make_current(&self) -> Result<(), ContextError> {
+ // TODO: glutin needs some internal changes for proper error recovery
let res = self.glx.MakeCurrent(self.display as *mut _, self.window, self.context);
if res == 0 {
panic!("glx::MakeCurrent failed");
}
+ Ok(())
}
fn is_current(&self) -> bool {
@@ -158,10 +161,10 @@ impl GlContext for Context {
}
}
- fn swap_buffers(&self) {
- unsafe {
- self.glx.SwapBuffers(self.display as *mut _, self.window)
- }
+ fn swap_buffers(&self) -> Result<(), ContextError> {
+ // TODO: glutin needs some internal changes for proper error recovery
+ unsafe { self.glx.SwapBuffers(self.display as *mut _, self.window); }
+ Ok(())
}
fn get_api(&self) -> ::Api {