Quartz Compositor

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

Quartz CompositorMac OS Xウィンドウシステム。他のQuartzフレームワークやQuartzファミリのレンダラーが生成しラスタライズしたグラフィックスを管理し表示する役割を担う。

目次

概要[編集]

Quartz Compositor は、生成されたビットマップ画像ビデオカードのメモリへの配置を単独で管理する。Quartz 2DOpenGLCore ImageQuickTime などが出力したビットマップは一旦、特定のメモリ位置、すなわち「バッキングストア」に置かれる。Compositor はバッキングストアからデータを読み込み、それらから画面全体のイメージを組み立て、ビデオカードのフレームバッファにそのイメージを書き込む。Quartz Compositor はラスタ形式のデータだけを受け取り、フレームバッファに直接アクセスする唯一のプロセスとして動作する[1]

個々のウィンドウの管理においては、Quartz Compositor はそのウィンドウのビットマップ画像と位置情報をレンダラーから受け取る。レンダラーの選択はアプリケーションに一任されているが、通常は Quartz 2D を使用する。Quartz Compositor は「視覚ミキシングボード」として動作し、そのウィンドウを画面全体のシーンに追加する。

Quartz Compositor はウィンドウマネージャのような役割も果たし、キー押下やマウスクリックといったイベントを受け取るイベントキューも持っている。Quartz Compositor はそのキューからイベントを取出し、そのイベントが発生したウィンドウに対応するプロセスを特定し、そのプロセスにイベントを渡す[2]

Quartz Extreme[編集]

Mac OS X v10.2Quartz Extreme が導入された。これは、Quartz Compositor のGPUアクセラレーション機能である。Quartz Extreme を使うと、シーンの合成にCPUのサイクルを全く使わなくなる。Quartz Compositor は、描画済みのバッキングストアをOpenGLのテクスチャマップまたはサーフェイスにカプセル化し、GPUを使って動作する。すると、GPUはそのサーフェイスやマップを合成して最終的イメージを作り、自身のフレームバッファにそれを供給する。

Quartz Extreme はOpenGLコマンドだけを使い、AGP 2X かそれ以上のバス(AGP 4X、8X、PCI Express)に接続されたグラフィックスカードを必要とする。また、レンダラー(例えば Quartz 2D)にはサイズ制限がないため、グラフィックスカードは任意の大きさのテクスチャやマップをサポートしている必要がある[1]。以下のグラフィックスカードを搭載したMacシステムでは自動的に有効となる[3]

QuartzGL[編集]

QuartzGL(OS X 10.4 Tiger では Quartz 2D Extreme)は、Quartz 2D API 用GPUアクセラレーション機能である。デフォルトでは OS X Tiger でも Leopard でも有効になっていない。しかし、OS X デベロッパーツールにある "quartz debug" アプリケーションを使うと、どちらのバージョンでも有効にできる。ただし、アップルは QuartzGL を正式サポートしていないので、quartz debug ユーティリティを終了させると同時に無効となる。ワークアラウンドとして quartz debug ユーティリティを強制終了させると QuartzGL を有効のままにしておくことも可能である。

Leopard では、アプリケーションの info.plist に QuartzGLEnabled というエントリを追加でき、アプリケーション単位の有効化が可能である。ただし、その前にシステム全体で有効にしておかないと、アプリケーション単位の "QuartzGLEnabled" も効果がない。

Core Image をサポートしているグラフィックスカードならQuartzGLもサポートできる。

脚注・出典[編集]

関連項目[編集]

外部リンク[編集]