diff options
Diffstat (limited to 'src/api/caca/mod.rs')
-rw-r--r-- | src/api/caca/mod.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/api/caca/mod.rs b/src/api/caca/mod.rs index da7810a..1e3840c 100644 --- a/src/api/caca/mod.rs +++ b/src/api/caca/mod.rs @@ -1,7 +1,7 @@ -#![cfg(all(any(target_os = "linux", target_os = "freebsd"), feature="headless"))] +#![cfg(any(target_os = "linux", target_os = "freebsd"))] use libc; -use api::osmesa::OsMesaContext; +use api::osmesa::{OsMesaContext, OsMesaCreationError}; use Api; use BuilderAttribs; @@ -83,7 +83,12 @@ impl<'a> Iterator for WaitEventsIterator<'a> { impl Window { pub fn new(builder: BuilderAttribs) -> Result<Window, CreationError> { - let opengl = try!(OsMesaContext::new(builder)); + let opengl = match OsMesaContext::new(builder) { + Err(OsMesaCreationError::NotSupported) => return Err(CreationError::NotSupported), + Err(OsMesaCreationError::CreationError(e)) => return Err(e), + Ok(c) => c + }; + let opengl_dimensions = opengl.get_dimensions(); let libcaca = match ffi::LibCaca::open(&Path::new("libcaca.so.0")) { |