さまざまなタイプのビュー/コンテキスト/レンダリング バックエンドについて読めば読むほど、混乱します。
http://en.wikipedia.org/wiki/Quartz_%28graphics_layer%29に関して MacOSX は、Core Graphics の一部であるレンダリング バックエンドとして Quartz (Extreme) を提供しています。Apple のドキュメントや一部の本でも、いずれにせよ何らかの方法で OpenGL を使用すると書かれています (明らかに、このオペレーティング システムは OpenGL を使用してすべての UI をレンダリングするためです)。
私は現在、カメラからリアルタイムビデオをキャプチャする必要があるアプリケーションを持っています (Quicktime に基づいているが Cocoa である QTKit を介して)。フレームをさらに処理したいと考えています (Core Image、GLSL シェーダーなどを介して)。
ここまでは順調ですね。今私の質問は - あなたが
- a) Quartz を介してキャプチャされたフレームを描画し、OpenGL を介して暗黙的に描画する、または
- b) OpenGL コンテキストと DisplayLink をセットアップし、バッファリングされた画像を OpenGL 経由で明示的に描画する場合は?
どちらかの方法で行くことの利点または欠点は何でしょうか?
さまざまな例 (特に CoreImage101 と CoreVideo101) と Apple の開発者ページのドキュメントを見てきましたが、なぜそのようにする (または行かなければならない) のかわかりません?!?
そして、Core Video と Core Animation がどこで機能するのか本当にわかりませんか? b) は、Core Video を使用していることを自動的に意味しますか? どの方法で Core Animation を使用できますか?
追加情報:
- http://developer.apple.com/leopard/overview/graphicsandmedia.html
- http://theocacao.com/document.page/306
- http://lists.apple.com/archives/quartz-dev/2007/Jun/msg00059.html
ps: ところで、私は Leopard を使用しているので、QuicktimeX の混乱はまだありません :)