在Mac OSX Lion中设置和使用OpenGL 3.0+(10.7)

时间:2012-01-16 01:43:57

标签: macos opengl shader

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

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

如果有人可以指向我在网上某处使用XCode 4在Mac OSX 10.7上设置OpenGL 3.0+上下文的链接,我们将不胜感激。

1 个答案:

答案 0 :(得分:6)

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

或使用Core 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),因为它是选择加入。