4

私は、レイヤーの形でのOpenGLフレームワーク統合に関連するMac上のいくつかのことを理解しようとしています。基本的に、OS Xに存在する3Dテクノロジーと、OpenGLの実際のインペンションレイヤーがどのレイヤーであるかを理解したい場合です。

アップルのドキュメントを読んで、これまでに理解したことは次のとおりです。

1.NSOpenGLContextオブジェクトは、低レベルのプラットフォーム固有のCore OpenGL(CGL)コンテキストをラップします。

=これにより、NSOpenGLがCGLを利用していることが明確になります。

2. AGL(Apple Graphics Library)APIは、MacOSXでのOpenGLのApple実装の一部です。

=では、AGLとCGLは何らかの形で関連していますか?

3.CGL(Core OpenGL)は、AppleがOpenGLを実装するための最低レベルのプログラミングインターフェイスです。

=標準のOpenGLAPIがCGLの単なるラッパーであることを意味しますか?

4.CoreAnimationは、Core Graphics、Open-GL、Quick-timeの組み合わせのようです。しかし、その下で何が使用されているのかわかりません。つまり、実際の実装レイヤーです。これもCGLですか?

物事は私には完全に明確ではありません。私はまだ読んでいて、過去にいくらか関連した質問をしましたが、知識は不完全です。

誰かが問題について彼の理解を共有することができれば本当にありがたいです。

4

1 に答える 1

8

NSOpenGLContext、AGL、およびCGLはすべて、描画できるOpenGLコンテキストを設定するためのAPIです。

使用しない理由があることがすでにわかっている場合を除き、NSOpenGLContextを使用してください。

Carbonアプリケーションを作成している場合、またはMac OS 9との互換性が必要な場合は、AGLを使用してください(2012年現在、基本的には「しない」という意味です)。

AGLとNSOpenGLContextの両方がCGLの上に実装されています。ただし、CGLの必要な部分のすべてが実際にパブリックAPIであるとは限りません。前回チェックしたとき、フルスクリーンのOpenGLコンテキストを作成できるCGLAPIの唯一のパブリック部分。ウィンドウにOpenGLが必要な場合、またはOpenGLの上にダイアログボックスまたは一部のNSViewを表示するオプションが必要な場合は、CGLを使用できない可能性があります。

CoreAnimationは、(主にUI)アニメーションのフレームワークです。OpenGLを直接使用せずにCoreAnimationを使用できます。自分で使用したことはありませんが、アニメーションレイヤーのOpenGLコンテキストを作成することもできると思います。CoreAnimationを使用する他の理由がすでにある場合、またはOpenGLグラフィックとMacGUIウィジェットを創造的な方法で組み合わせたい場合に使用します。

于 2012-01-31T13:27:51.487 に答える