OS X Maverick上的OpenGL 3.2 VAO创建失败

时间:2014-05-12 16:22:35

标签: macos opengl

我有一个程序曾经在MAC OS X Lion上工作正常。它使用的是OpenGL 3.2核心配置文件。现在我升级到Maverick后,在上下文设置后立即失败glGenVertexArrays()。正在创建上下文。关于OpenGL 3.2设置,Maverick有什么变化?

我初始化这样的上下文:

static CGLPixelFormatAttribute attributes[4]={
kCGLPFAAccelerated,  
kCGLPFAOpenGLProfile, 
(CGLPixelFormatAttribute)kCGLOGLPVersion_3_2_Core,
(CGLPixelFormatAttribute)0
};





    _errorCode = CGLChoosePixelFormat(attributes,&_pix,&_num);
    if(_errorCode > 0){

        throw ;
    }
    _errorCode = CGLCreateContext(_pix, NULL, &_context);
    if(_errorCode > 0){

          throw;
    }
    CGLDestroyPixelFormat(_pix);

    _errorCode = CGLSetCurrentContext(_context);
    if(_errorCode > 0){

        throw ;
    }

在我进入VAO句柄生成之前,这些都不会引发错误。同时glGetError返回一些垃圾。

更新:

我发现错误是GL_INVALID_FRAMEBUFFER_OPERATION,0x0506。现在它发生在我执行时

glDrawArrays(GL_TRIANGLE_STRIP,0,4);

当没有绑定自定义帧缓冲区时。如果我使用自定义FBO调用draw命令它确实有效。我的上下文创建没有显示。它在屏幕外。可能是因为较新的实现Apple强制显示存在以便访问默认FBO?在Lion上我做了同样的工作。但是,GL版本是4.1。

0 个答案:

没有答案