web-dev-qa-db-ja.com

Mac OSXでOpenGLを2.1から3.3にアップグレードするにはどうすればよいですか?

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が表示されます。
どうすればアップグレードできますか?私はマーベリックスを走らせています。

11
jackcogdill

技術的には、(ウィンドウの)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の概要については、 ここ をご覧になることをお勧めします。

10

グラフィックドライバはAppleから提供されているため、アップグレードできません。ただし、システムはOpenGL 3.3( https://developer.Apple.com/opengl/capabilities/ )をサポートする必要があります。 OpenGLコンテキストを作成するときは、CoreProfileモードを要求する必要があります。 GLUTを使用している場合、これは次の方法で実行できます。

OpenGL 3.2コアプロファイルを備えたOS X上のGLUT

2
Mortennobel