5

私は、レガシープロファイルでOpenGLを使用してNSOpenGLViewでUIの一部を描画するMacアプリケーションを書いています。

私のアプリはOSX10.7以降を対象としています。

OpenGL 3.2に移行した場合、Lionを使用している一部のユーザーがOpenGL 3.2を実行できなくなりますか、それとも、Lionを使用しているすべてのMacがOpenGL 3.2をサポートしますか?

4

3 に答える 3

5

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で正常に動作するはずです。

于 2012-08-31T00:34:16.267 に答える
5

OSXには、OpenGL機能がハードウェアで利用できない場合に自動的に使用されるソフトウェアフォールバックレンダラーがあります。Lionを実行しているすべてのOSXマシンは、このソフトウェアフォールバックレンダラーを介して完全なOpenGL3.2Core仕様をサポートしています。ハードウェアで利用できない機能を要求した場合、OpenGLフレームワークは、グラフィックスパイプラインのその段階のソフトウェアレンダリングにサイレントにフォールバックします。

これは、ハードウェアに関係なく、Lionを実行しているすべてのMacがOpenGL3.2アプリケーションを実行することを意味します。ランタイムエラーは発生しませんが、GPUがハードウェアでサポートする機能やレンダリングタスクの複雑さに応じて、許容できるパフォーマンスが得られる場合と得られない場合があります。

于 2013-07-23T17:11:36.453 に答える
0

ここでの答えは正しいです。Lionを実行するすべてのMacで利用できるが、ハードウェアアクセラレーションではないソフトウェアレンダラーフォールバックオプションを無効にした場合です。

さまざまなGPUおよびシステムソフトウェアレンダラーでサポートされているOpenGL機能の詳細なリストは次のとおりです。https ://developer.apple.com/graphicsimaging/opengl/capabilities/GLInfo_1075_Core.html

于 2012-09-01T20:29:33.073 に答える