Fix OS X build.

This commit is contained in:
Josh Matthews 2015-01-21 10:58:08 -05:00
parent 862baf8220
commit e12e4bf38f
2 changed files with 22 additions and 20 deletions

View file

@ -51,6 +51,14 @@ fn main() {
"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

View file

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