私は、レガシープロファイルでOpenGLを使用してNSOpenGLViewでUIの一部を描画するMacアプリケーションを書いています。
私のアプリはOSX10.7以降を対象としています。
OpenGL 3.2に移行した場合、Lionを使用している一部のユーザーがOpenGL 3.2を実行できなくなりますか、それとも、Lionを使用しているすべてのMacがOpenGL 3.2をサポートしますか?
OS X10.7のSDKにはOpenGL3.2のコアプロファイルが含まれていますが、実際のランタイムサポートには、OpenGL3.2準拠のGPUとドライバーが必要です。
OpenGL 3.2は2008年にリリースされ、OS X 10.7Lionは2006年に遡る特定のMacモデルをサポートしています。2006年後半のCore2Duo MacBook ProはLionを実行し、OpenGL2.0GPUであるATIMobilityRadeonX1600を搭載しています。
その単一の例によって、10.7 Lionを実行できるコンピューターのセットが、OpenGL3.2プログラムを実行できるコンピューターのセットのスーパーセットであることが示されています。
私はMacの専門家でもOpenGLプログラマーでもないことに注意してください。私は、OpenGLがどの程度下位互換性があるのかわかりません。OpenGL 3.2ライブラリに対してコンパイルすることは問題ないと思いますが、ハードウェア高速化3.2機能を使用しようとすると、ランタイムエラーが発生します。ただし、機能を使用する前に、その機能がサポートされているかどうかをテストする必要があります。そのため、若干の変更を加えれば、プログラムは古いMacで正常に動作するはずです。
OSXには、OpenGL機能がハードウェアで利用できない場合に自動的に使用されるソフトウェアフォールバックレンダラーがあります。Lionを実行しているすべてのOSXマシンは、このソフトウェアフォールバックレンダラーを介して完全なOpenGL3.2Core仕様をサポートしています。ハードウェアで利用できない機能を要求した場合、OpenGLフレームワークは、グラフィックスパイプラインのその段階のソフトウェアレンダリングにサイレントにフォールバックします。
これは、ハードウェアに関係なく、Lionを実行しているすべてのMacがOpenGL3.2アプリケーションを実行することを意味します。ランタイムエラーは発生しませんが、GPUがハードウェアでサポートする機能やレンダリングタスクの複雑さに応じて、許容できるパフォーマンスが得られる場合と得られない場合があります。
ここでの答えは正しいです。Lionを実行するすべてのMacで利用できるが、ハードウェアアクセラレーションではないソフトウェアレンダラーフォールバックオプションを無効にした場合です。
さまざまなGPUおよびシステムソフトウェアレンダラーでサポートされているOpenGL機能の詳細なリストは次のとおりです。https ://developer.apple.com/graphicsimaging/opengl/capabilities/GLInfo_1075_Core.html