Apple ha un progetto di codice di esempio chiamato GLEssentials che mostra esattamente come fare questo (si noti che si tratta di un Mac OS X e progetto di codice di esempio iOS).
Essenzialmente è necessario creare una sottoclasse NSOpenGLView (la classe NSGLView nel codice di esempio) e implementare il metodo awakeFromNib utilizzando il seguente:
- (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];
}
Ricorda inoltre che se si utilizzano tutte le chiamate API OpenGL che sono stati rimossi dall'API 3.2 la tua app si bloccherà. Ecco uno PDF document della specifica 3.2 in modo da poter vedere le modifiche.