diff options
| author | Pierre Krieger <pierre.krieger1708@gmail.com> | 2015-04-30 13:23:37 +0200 | 
|---|---|---|
| committer | Pierre Krieger <pierre.krieger1708@gmail.com> | 2015-04-30 16:57:07 +0200 | 
| commit | aa58f4149a65783b07c0dc401b5854ed80c4915e (patch) | |
| tree | dd5d06aa46a1e18f0b93c2960dacc2cea9c81982 /src/api/osmesa | |
| parent | a08388bca1ca275fd1455ceae26ab06c02c81111 (diff) | |
| download | glutin-aa58f4149a65783b07c0dc401b5854ed80c4915e.tar.gz glutin-aa58f4149a65783b07c0dc401b5854ed80c4915e.zip  | |
Add a GlContext trait
Diffstat (limited to 'src/api/osmesa')
| -rw-r--r-- | src/api/osmesa/mod.rs | 26 | 
1 files changed, 19 insertions, 7 deletions
diff --git a/src/api/osmesa/mod.rs b/src/api/osmesa/mod.rs index ea90583..61eebc1 100644 --- a/src/api/osmesa/mod.rs +++ b/src/api/osmesa/mod.rs @@ -2,9 +2,12 @@  extern crate osmesa_sys; +use Api;  use BuilderAttribs;  use CreationError;  use CreationError::OsError; +use GlContext; +use PixelFormat;  use libc;  use std::{mem, ptr};  use std::ffi::CString; @@ -43,7 +46,13 @@ impl OsMesaContext {          (self.width, self.height)      } -    pub unsafe fn make_current(&self) { +    // TODO: can we remove this without causing havoc? +    pub fn set_window_resize_callback(&mut self, _: Option<fn(u32, u32)>) { +    } +} + +impl GlContext for OsMesaContext { +    unsafe fn make_current(&self) {          let ret = osmesa_sys::OSMesaMakeCurrent(self.context,              self.buffer.as_ptr() as *mut libc::c_void,              0x1401, self.width as libc::c_int, self.height as libc::c_int); @@ -53,23 +62,26 @@ impl OsMesaContext {          }      } -    pub fn is_current(&self) -> bool { +    fn is_current(&self) -> bool {          unsafe { osmesa_sys::OSMesaGetCurrentContext() == self.context }      } -    pub fn get_proc_address(&self, addr: &str) -> *const () { +    fn get_proc_address(&self, addr: &str) -> *const libc::c_void {          unsafe {              let c_str = CString::new(addr.as_bytes().to_vec()).unwrap();              mem::transmute(osmesa_sys::OSMesaGetProcAddress(mem::transmute(c_str.as_ptr())))          }      } -    /// See the docs in the crate root file. -    pub fn get_api(&self) -> ::Api { -        ::Api::OpenGl +    fn swap_buffers(&self) {      } -    pub fn set_window_resize_callback(&mut self, _: Option<fn(u32, u32)>) { +    fn get_api(&self) -> Api { +        Api::OpenGl +    } + +    fn get_pixel_format(&self) -> PixelFormat { +        unimplemented!();      }  }  | 
