Macbook ProのCでOpenGL 3をプログラムしようとしています。
私のグラフィックカードはNVIDIA GeForce 320M 256 MB
ですが、OpenGL 2.1を持っています wikipedia によると、OpenGL 3.3を使用できるはずです。
ただし、glxinfo | grep -i opengl
を実行すると、OpenGL version string: 2.1 NVIDIA-8.24.16 310.90.9.05f01
が表示されます。
どうすればアップグレードできますか?私はマーベリックスを走らせています。
技術的には、(ウィンドウの)OpenGL 3.2コンテキストプログラミングを純粋にOS XのCで取得することはできません。
NSOpenGLと呼ばれるCocoa(Objective-Cフレームワーク)の一部を使用する必要があります。 AGL(非推奨のCベースのAPI)と本当に古いXサーバーの実装(XQuartz)は、OpenGL 2.1に永続的に制限されています。
Apple独自のGLUT実装はNSOpenGLをラップします(FreeGLUTはそうではありません)。GLFWやSDLなどもラップします。NSOpenGLとインターフェースするためにObjective-Cで書かれた小さな部分があり、これによりウィンドウベースのOpenGL 3.2+レンダーを作成できますCソフトウェアでもコンテキスト。
さて、ここでの問題は、実際にはglxinfo
がOpenGL 3.2+をサポートしないXQuartzを使用することです。 OpenGL機能の詳細情報が必要な場合は、Mac App Storeで OpenGL Extension Viewer を使用することをお勧めします。
OS XでOpenGLの開発を始めたばかりなので、さまざまなAPIの概要については、 ここ をご覧になることをお勧めします。
グラフィックドライバはAppleから提供されているため、アップグレードできません。ただし、システムはOpenGL 3.3( https://developer.Apple.com/opengl/capabilities/ )をサポートする必要があります。 OpenGLコンテキストを作成するときは、CoreProfileモードを要求する必要があります。 GLUTを使用している場合、これは次の方法で実行できます。