Quartz
テンプレート:出典の明記 Quartz(クオーツ)は、アップルのオペレーティングシステム Mac OS X の描画コアエンジン。前身である NeXT の DPS に代わり、PDF ベースの描画モデルを採用したもの。三次ベジェ曲線を描画プリミティブとするベクトル型システムで、QuickDraw との互換性はない。なお、QuickDrawはCarbonアプリケーションの互換性のため Mac OS X にも残されている。
細かく言うと、アプリケーションで個々のバッファに描画を行なうプリミティブは Quartz 2D と呼び、それらを最終的にGPUのフレームバッファに合成する部分は テンプレート:ルビという。単に Quartz という場合は大抵 Quartz 2D の事である。現在の Quartz の構造では、Quartz 2D、QuickDraw、OpenGL、QuickTime の各出力が最終的に Quartz Compositor によって画面に描画される形になっている。
Quartz の機能は、Objective-C からは Cocoa API を通して、また C/C++ 言語からは Carbon API を通して利用できる。またアップルは Quartz のスクリプト言語バインディングのひとつとして Python のバインディングを公式に用意している。
- 解像度非依存のベクトルベース・システム
- 浮動小数点による数学座標系
- 常時アンチエイリアシング
- アルファチャンネルのサポート
- オブジェクト指向の API
- Unicodeに対応した多国語文字描画ルーチン (ATSUI)
Mac OS X v10.2(Jaguar)以降では、環境に応じて ビデオチップのジオメトリ演算ユニットを使って、 CPU の負荷を軽減する Quartz Extreme が実装された。これは Quartz Compositor のバッファ合成をGPU内部で行なうシステムであり、これにより OpenGL との混在描画も可能となった。
Mac OS X v10.4(Tiger)ではビデオチップのプログラマブルシェーダを使って、描画演算をほぼ全てビデオチップ内で実行できる Quartz 2D Extreme(Mac OS X v10.5、Leopard)で QuartzGL に名称変更)が隠し機能として搭載されている(多くの不具合を抱えたまま実装されオフにされており、正式にはサポートされていない)。
DPSから Quartz へと実装が変更された理由は、一説にはAdobe社のライセンス料が高額だったためといわれていた。しかし、実際にはDPSでは機能が足りず、現代的な描画システムとしてふさわしいリッチなものが必要であったことが主な理由である。