2014-11-17 5 views
9

Ich versuche, OpenGL 3 in C auf meinem Macbook Pro zu programmieren.Wie aktualisiere ich mein OpenGL von 2.1 auf 3.3 auf Mac OSX?

Meine Grafikkarte ist NVIDIA GeForce 320M 256 MB, aber ich habe OpenGL 2.1 Nach wikipedia, soll ich in der Lage sein, OpenGL zu verwenden 3.3:

Allerdings, wenn ich glxinfo | grep -i opengl laufen, bekomme ich OpenGL version string: 2.1 NVIDIA-8.24.16 310.90.9.05f01.
Wie gehe ich vor, es zu aktualisieren? Ich betreibe Mavericks.

+0

aktualisieren Sie Ihre Grafiktreiber –

+1

@ratchetfreak: Sie können Grafiktreiber unter OS X nicht aktualisieren (GL-Version ist an OS-Version gebunden). Das wirklich große Problem ist, dass 'glxinfo' verwendet wird. Der GLX-Server, der mit OS X ausgeliefert wird, ist auf GL 2.1 beschränkt. Sie müssen die nativen Cocoa-Schnittstellen verwenden, um einen Kernprofilkontext anstelle des veralteten X-Servers zu erstellen. –

Antwort

9

Technisch Sie kein (windowed) OpenGL 3.2 Kontext rein in C unter OS X Programmierung bekommen

Sie haben Teil zu verwenden, Cocoa (ein Objective-C-Framework) namens NSOpenGL; AGL (veraltete C-basierte API) sowie die wirklich alte X-Server-Implementierung (XQuartz) sind immer auf OpenGL 2.1 beschränkt.

Apples eigene Implementierung von GLUT Wraps NSOpenGL (FreeGLUT nicht), und so GLFW, SDL, etc. Sie haben kleine Teile, die in Objective-C geschrieben werden, um mit NSOpenGL zu interagieren und ermöglicht ihnen, Fenster-basierte zu erstellen OpenGL 3.2+ rendert Kontexte sogar in C-Software.


Nun, das Problem hier ist eigentlich, dass glxinfo verwendet XQuartz, die nicht OpenGL unterstützt 3.2+. Ich würde vorschlagen, dass Sie die OpenGL Extension Viewer im Mac App Store verwenden, wenn Sie detaillierte Informationen über Ihre OpenGL-Fähigkeiten wünschen.

Da Sie gerade mit OpenGL-Entwicklung auf OS X beginnen, würde ich auch vorschlagen, dass Sie einen Blick auf here werfen für einen schnellen Überblick über die verschiedenen APIs.