Handle errors from MakeCurrent and SwapBuffers

This commit is contained in:
Pierre Krieger 2015-06-16 10:15:31 +02:00
parent e48c853b9c
commit f6c26ec593
20 changed files with 123 additions and 62 deletions

View file

@ -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!()
}

View file

@ -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()
}

View file

@ -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()

View file

@ -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()
}

View file

@ -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()
}