diff options
author | Pierre Krieger <pierre.krieger1708@gmail.com> | 2015-05-04 07:32:02 +0200 |
---|---|---|
committer | Pierre Krieger <pierre.krieger1708@gmail.com> | 2015-05-04 07:48:42 +0200 |
commit | ace4808facf085c4ccd068d33b9ab9f018e9072e (patch) | |
tree | 85f3099d7fe7c8c3b5fe1d3d6d6fa90917cb1fe5 /src/api/osmesa | |
parent | e953e3d4ead7931bc32c49bcd9f4a637ef6d5fa7 (diff) | |
download | glutin-ace4808facf085c4ccd068d33b9ab9f018e9072e.tar.gz glutin-ace4808facf085c4ccd068d33b9ab9f018e9072e.zip |
Remove the "headless" feature
Diffstat (limited to 'src/api/osmesa')
-rw-r--r-- | src/api/osmesa/mod.rs | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/api/osmesa/mod.rs b/src/api/osmesa/mod.rs index 61eebc1..22df72a 100644 --- a/src/api/osmesa/mod.rs +++ b/src/api/osmesa/mod.rs @@ -1,11 +1,10 @@ -#![cfg(all(any(target_os = "linux", target_os = "freebsd"), feature="headless"))] +#![cfg(any(target_os = "linux", target_os = "freebsd"))] extern crate osmesa_sys; use Api; use BuilderAttribs; use CreationError; -use CreationError::OsError; use GlContext; use PixelFormat; use libc; @@ -19,8 +18,23 @@ pub struct OsMesaContext { height: u32, } +pub enum OsMesaCreationError { + CreationError(CreationError), + NotSupported, +} + +impl From<CreationError> for OsMesaCreationError { + fn from(e: CreationError) -> OsMesaCreationError { + OsMesaCreationError::CreationError(e) + } +} + impl OsMesaContext { - pub fn new(builder: BuilderAttribs) -> Result<OsMesaContext, CreationError> { + pub fn new(builder: BuilderAttribs) -> Result<OsMesaContext, OsMesaCreationError> { + if let Err(_) = osmesa_sys::OsMesa::try_loading() { + return Err(OsMesaCreationError::NotSupported); + } + let dimensions = builder.dimensions.unwrap(); Ok(OsMesaContext { @@ -31,7 +45,7 @@ impl OsMesaContext { context: unsafe { let ctxt = osmesa_sys::OSMesaCreateContext(0x1908, ptr::null_mut()); if ctxt.is_null() { - return Err(OsError("OSMesaCreateContext failed".to_string())); + return Err(CreationError::OsError("OSMesaCreateContext failed".to_string()).into()); } ctxt } |