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

csp*_*pam 6 opengl macos shader

我想在XCode 4中设置一个OpenGL 3.0+上下文.

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

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

use*_*069 6

有一些示例代码在这里设立一个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);
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,您都必须手动(而不是通过InterfaceBuilder),因为它是选择加入.