Apple tiene un proyecto de código de ejemplo denominado GLEssentials que muestra exactamente cómo hacer esto (tenga en cuenta que se trata de un Mac OS X y iOS proyecto de código de ejemplo).
Esencialmente tendrá que subclase NSOpenGLView (la clase NSGLView en el código de ejemplo) y poner en práctica el método awakeFromNib utilizando la siguiente:
- (void) awakeFromNib
{
NSOpenGLPixelFormatAttribute attrs[] =
{
NSOpenGLPFADoubleBuffer,
NSOpenGLPFADepthSize, 24,
// Must specify the 3.2 Core Profile to use OpenGL 3.2
NSOpenGLPFAOpenGLProfile,
NSOpenGLProfileVersion3_2Core,
0
};
NSOpenGLPixelFormat *pf = [[[NSOpenGLPixelFormat alloc] initWithAttributes:attrs] autorelease];
if (!pf)
{
NSLog(@"No OpenGL pixel format");
}
NSOpenGLContext* context = [[[NSOpenGLContext alloc] initWithFormat:pf shareContext:nil] autorelease];
[self setPixelFormat:pf];
[self setOpenGLContext:context];
}
Asimismo, recuerda que si utiliza cualquier llamadas a la API de OpenGL que se han eliminado de 3.2 API su aplicación se bloqueará. Aquí hay un PDF document de la especificación 3.2 para que pueda ver los cambios.