Macos 设置和使用OpenGL 3.0+;使用Mac OSX Lion(10.7)

Macos 设置和使用OpenGL 3.0+;使用Mac OSX Lion(10.7),macos,opengl,shader,Macos,Opengl,Shader,我正在尝试在XCode 4中设置OpenGL 3.0+上下文 正如您在开发者网站上看到的,它使用的示例是OpenGL 2.0。在附录B中,它确实谈到了3.2的更新,但只是向您展示了函数名的更改以及仅适用于核心的内容,但没有实际设置OpenGL上下文的示例。这已经发生了很大的变化,因为固定的函数管道是,您不能再做像glMatrixMode(…)这样的事情了。。等等,即。opengl状态不再是 如果有人能给我指一下web上的某个链接,关于使用XCode 4在MacOSX 10.7上设置OpenGL

我正在尝试在XCode 4中设置OpenGL 3.0+上下文

正如您在开发者网站上看到的,它使用的示例是OpenGL 2.0。在附录B中,它确实谈到了3.2的更新,但只是向您展示了函数名的更改以及仅适用于核心的内容,但没有实际设置OpenGL上下文的示例。这已经发生了很大的变化,因为固定的函数管道是,您不能再做像glMatrixMode(…)这样的事情了。。等等,即。opengl状态不再是


如果有人能给我指一下web上的某个链接,关于使用XCode 4在MacOSX 10.7上设置OpenGL 3.0+上下文,我将不胜感激

有一些示例代码用于在NSOpenGLView中设置3.2上下文

或使用核心GL

CGLPixelFormatAttribute attribs[13] = {
    kCGLPFAOpenGLProfile, (CGLPixelFormatAttribute)kCGLOGLPVersion_3_2_Core, // This sets the context to 3.2
    kCGLPFAColorSize,     (CGLPixelFormatAttribute)24,
    kCGLPFAAlphaSize,     (CGLPixelFormatAttribute)8,
    kCGLPFAAccelerated,
    kCGLPFADoubleBuffer,
    kCGLPFASampleBuffers, (CGLPixelFormatAttribute)1,
    kCGLPFASamples,       (CGLPixelFormatAttribute)4,
    (CGLPixelFormatAttribute)0
};

CGLPixelFormatObj pix;
GLint npix;
CGLChoosePixelFormat(attribs, &pix, &npix);

CGLContextObj ctx;
CGLCreateContext(pix, 0, &ctx);

CGLSetCurrentContext(ctx);
CGLLockContext(ctx);
在这两种情况下,您都必须手动执行(而不是通过InterfaceBuilder),因为这是可选的。

同一文档中的“选择渲染器和缓冲区属性”一章如何?选择配置文件属性:KCGLGLPVersion_3_2_Core