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/platform/android/mod.rs | 4 +++- src/platform/emscripten/mod.rs | 5 +++-- src/platform/linux/api_dispatch.rs | 5 +++-- src/platform/linux/mod.rs | 5 +++-- src/platform/windows/mod.rs | 5 +++-- 5 files changed, 15 insertions(+), 9 deletions(-) (limited to 'src/platform') diff --git a/src/platform/android/mod.rs b/src/platform/android/mod.rs index a1b9416..50f554b 100644 --- a/src/platform/android/mod.rs +++ b/src/platform/android/mod.rs @@ -2,6 +2,8 @@ pub use api::android::*; +use ContextError; + pub struct HeadlessContext(i32); impl HeadlessContext { @@ -11,7 +13,7 @@ impl HeadlessContext { } /// See the docs in the crate root file. - pub unsafe fn make_current(&self) { + pub unsafe fn make_current(&self) -> Result<(), ContextError> { unimplemented!() } diff --git a/src/platform/emscripten/mod.rs b/src/platform/emscripten/mod.rs index 56a7e9f..d3aa6d6 100644 --- a/src/platform/emscripten/mod.rs +++ b/src/platform/emscripten/mod.rs @@ -1,5 +1,6 @@ #![cfg(target_os = "emscripten")] +use ContextError; use GlContext; pub use api::emscripten::{Window, WindowProxy, MonitorID, get_available_monitors}; @@ -15,7 +16,7 @@ impl HeadlessContext { } impl GlContext for HeadlessContext { - unsafe fn make_current(&self) { + unsafe fn make_current(&self) -> Result<(), ContextError> { self.0.make_current() } @@ -27,7 +28,7 @@ impl GlContext for HeadlessContext { self.0.get_proc_address(addr) } - fn swap_buffers(&self) { + fn swap_buffers(&self) -> Result<(), ContextError> { self.0.swap_buffers() } diff --git a/src/platform/linux/api_dispatch.rs b/src/platform/linux/api_dispatch.rs index d04a1fb..d21cac3 100644 --- a/src/platform/linux/api_dispatch.rs +++ b/src/platform/linux/api_dispatch.rs @@ -7,6 +7,7 @@ use std::collections::VecDeque; use std::sync::Arc; use BuilderAttribs; +use ContextError; use CreationError; use CursorState; use Event; @@ -289,7 +290,7 @@ impl Window { } impl GlContext for Window { - unsafe fn make_current(&self) { + unsafe fn make_current(&self) -> Result<(), ContextError> { match self { &Window::X(ref w) => w.make_current(), &Window::Wayland(ref w) => w.make_current() @@ -310,7 +311,7 @@ impl GlContext for Window { } } - fn swap_buffers(&self) { + fn swap_buffers(&self) -> Result<(), ContextError> { match self { &Window::X(ref w) => w.swap_buffers(), &Window::Wayland(ref w) => w.swap_buffers() diff --git a/src/platform/linux/mod.rs b/src/platform/linux/mod.rs index 323a21a..fc42f18 100644 --- a/src/platform/linux/mod.rs +++ b/src/platform/linux/mod.rs @@ -2,6 +2,7 @@ use Api; use BuilderAttribs; +use ContextError; use CreationError; use GlContext; use PixelFormat; @@ -37,7 +38,7 @@ impl HeadlessContext { impl GlContext for HeadlessContext { #[inline] - unsafe fn make_current(&self) { + unsafe fn make_current(&self) -> Result<(), ContextError> { self.0.make_current() } @@ -52,7 +53,7 @@ impl GlContext for HeadlessContext { } #[inline] - fn swap_buffers(&self) { + fn swap_buffers(&self) -> Result<(), ContextError> { self.0.swap_buffers() } diff --git a/src/platform/windows/mod.rs b/src/platform/windows/mod.rs index 260ab94..b33b8ee 100644 --- a/src/platform/windows/mod.rs +++ b/src/platform/windows/mod.rs @@ -6,6 +6,7 @@ use libc; use Api; use BuilderAttribs; +use ContextError; use CreationError; use PixelFormat; use GlContext; @@ -21,7 +22,7 @@ impl HeadlessContext { } impl GlContext for HeadlessContext { - unsafe fn make_current(&self) { + unsafe fn make_current(&self) -> Result<(), ContextError> { self.0.make_current() } @@ -33,7 +34,7 @@ impl GlContext for HeadlessContext { self.0.get_proc_address(addr) } - fn swap_buffers(&self) { + fn swap_buffers(&self) -> Result<(), ContextError> { self.0.swap_buffers() } -- cgit v1.2.3