2014-11-17 12 views
9

Sto provando a programmare OpenGL 3 in C sul mio Macbook Pro.Come faccio ad aggiornare il mio OpenGL da 2.1 a 3.3 su Mac OSX?

La mia scheda grafica è NVIDIA GeForce 320M 256 MB, ma ho OpenGL 2.1 Secondo wikipedia, dovrei essere in grado di utilizzare OpenGL 3.3:

Tuttavia, quando corro glxinfo | grep -i opengl, ottengo OpenGL version string: 2.1 NVIDIA-8.24.16 310.90.9.05f01.
Come posso aggiornarlo? Sto gestendo Mavericks.

+0

aggiornare i driver di grafica –

+1

@ratchetfreak: non è possibile aggiornare i driver di grafica su OS X (la versione GL è legata alla versione del sistema operativo). Il problema veramente grande qui è che viene usato 'glxinfo'. Il server GLX che (sorta) viene fornito con OS X è limitato a GL 2.1. È necessario utilizzare le interfacce native Cocoa per creare un contesto profilo principale anziché il server X deprecato. –

risposta

9

Tecnicamente, non è possibile ottenere un (finestra) OpenGL 3.2 contesto di programmazione esclusivamente in C su OS X.

Devi usare parte di Cocoa (un framework Objective-C) chiamato NSOpenGL; L'AGL (deprecated C-based API) e l'implementazione X server molto vecchia (XQuartz) sono perpetuamente limitate a OpenGL 2.1.

L'implementazione Apple di GLUT esegue il wrapping di NSOpenGL (FreeGLUT non lo fa), così come GLFW, SDL, ecc. Hanno piccole parti scritte in Objective-C per interfacciarsi con NSOpenGL e questo consente di creare finestre basate su finestra Contesti di rendering OpenGL 3.2+ anche nel software C.


Ora, il problema qui è in realtà che glxinfo utilizza XQuartz, che non supporta OpenGL 3.2+. Ti suggerisco di usare lo OpenGL Extension Viewer sul Mac App Store se desideri informazioni dettagliate sulle tue capacità OpenGL.

Dato che stai appena iniziando lo sviluppo di OpenGL su OS X, ti suggerisco di dare un'occhiata here per una rapida panoramica delle varie API.

Problemi correlati