diff options
| -rw-r--r-- | build.rs | 10 | ||||
| -rw-r--r-- | src/osx/headless.rs | 32 | 
2 files changed, 22 insertions, 20 deletions
@@ -50,7 +50,15 @@ fn main() {                                          khronos_api::EGL_XML, vec![],                                          "1.5", "core", &mut file).unwrap();      } -     + +    if target.contains("darwin") { +        let mut file = File::create(&dest.join("gl_bindings.rs")).unwrap(); +        gl_generator::generate_bindings(gl_generator::GlobalGenerator, +                                        gl_generator::registry::Ns::Gl, +                                        khronos_api::GL_XML, +                                        vec!["GL_EXT_framebuffer_object".to_string()], +                                        "3.2", "core", &mut file).unwrap(); +    }      // TODO: only build the bindings below if we run tests/examples diff --git a/src/osx/headless.rs b/src/osx/headless.rs index 3981058..cc19457 100644 --- a/src/osx/headless.rs +++ b/src/osx/headless.rs @@ -11,36 +11,30 @@ use cocoa::base::{id, nil};  use cocoa::appkit::*;  mod gl { -    generate_gl_bindings! { -        api: "gl", -        profile: "core", -        version: "3.2", -        generator: "global", -        extensions: ["GL_EXT_framebuffer_object"], -    } +    include!(concat!(env!("OUT_DIR"), "/gl_bindings.rs"));  }  static mut framebuffer: u32 = 0;  static mut texture: u32 = 0;  pub struct HeadlessContext { -    width: usize, -    height: usize, +    width: u32, +    height: u32,      context: id,  }  impl HeadlessContext {      pub fn new(builder: BuilderAttribs) -> Result<HeadlessContext, CreationError> { -        let (width, height) = builder.dimensions; +        let (width, height) = builder.dimensions.unwrap_or((1024, 768));          let context = unsafe {              let attributes = [ -                NSOpenGLPFADoubleBuffer as usize, -                NSOpenGLPFAClosestPolicy as usize, -                NSOpenGLPFAColorSize as usize, 24, -                NSOpenGLPFAAlphaSize as usize, 8, -                NSOpenGLPFADepthSize as usize, 24, -                NSOpenGLPFAStencilSize as usize, 8, -                NSOpenGLPFAOffScreen as usize, +                NSOpenGLPFADoubleBuffer as u32, +                NSOpenGLPFAClosestPolicy as u32, +                NSOpenGLPFAColorSize as u32, 24, +                NSOpenGLPFAAlphaSize as u32, 8, +                NSOpenGLPFADepthSize as u32, 24, +                NSOpenGLPFAStencilSize as u32, 8, +                NSOpenGLPFAOffScreen as u32,                  0              ]; @@ -87,8 +81,8 @@ impl HeadlessContext {      }      pub fn get_proc_address(&self, _addr: &str) -> *const () { -        let symbol_name: CFString = from_str(_addr).unwrap(); -        let framework_name: CFString = from_str("com.apple.opengl").unwrap(); +        let symbol_name: CFString = _addr.parse().unwrap(); +        let framework_name: CFString = "com.apple.opengl".parse().unwrap();          let framework = unsafe {              CFBundleGetBundleWithIdentifier(framework_name.as_concrete_TypeRef())          };  | 
