MacプラットフォームでのCGLとOpenGLの関係を理解しようとしています。
より具体的には、コンテキストについて。彼らは文脈を共有していますか?はいの場合、どのように?関連する例へのリンクを教えてください。
「いいえ」の場合、OpenGL を利用するコア アニメーション アプリケーションで動作する 2 つのコンテキストがありますか?
Mac での OpenGL の使用に非常に混乱しています。誰かが明確にすることができますか?
CGL は、OpenGL がレンダリングするのに適したデバイス固有のコンテキストをセットアップします。Windows および X の wgl および xgl とそれぞれ比較してください。CGL は、グラフィックス ハードウェアにそのピクセル フォーマットを問い合わせる方法と、コンテキストを設定および構成する方法 (たとえば、ダブル バッファまたはシングル バッファ、解像度の深度、ステンシル、蓄積バッファなど) を理解しています。ただし、そのコンテキストで描画する機能は提供していません。CGL でコンテキストを作成したら、それを最新の状態にし、OpenGL を呼び出してそのコンテキストでレンダリングできます。
Core Graphics (CGL と混同しないでください) では、コンテキストの初期化とコンテキストへの描画の両方が同じフレームワークによって処理されます。ただし、OpenGL はオープン スタンダードであり、クロスプラットフォームになるように設計されているため、レンダリング機能とデバイス コンテキスト機能は別々のフレームワークに抽象化されています。
CGL は、Mac 上の OpenGL への低レベル インターフェイスです。OpenGL Mac アプリを作成している場合は、おそらく使用したくないでしょう。私は現在、XCode 4 用の直感的な OpenGL Mac アプリケーション テンプレートを作成中ですが、それまでの間、OpenGL を使用して作成した pong クローンであるhttps://github.com/mk12/Pong-Ultimateを見ることができます。これは、OpenGL への高レベルの Cocoa インターフェイスである NSOpenGL を使用します。
次の Apple ドキュメントも役立つ場合があります。