macOS の描画エンジン Quartz(クオーツ)
Quartz は、
Apple の
オペレーティングシステム macOS の描画コアエンジンです。前身である NeXT の DPS(Display
PostScript)に代わり、PDF ベースの描画モデルを採用しています。三次ベジェ曲線を基本とするベクターグラフィックスシステムであり、従来の
QuickDraw との互換性はありません。ただし、
QuickDraw は Carbon アプリケーションの互換性維持のため、macOS に残されています。
Quartz の構造
アプリケーションが個々のバッファに描画を行うプリミティブは
Quartz 2D と呼ばれます。そして、それらの描画結果を最終的に GPU のフレームバッファに合成する部分が
Quartz Compositor(クオーツ・コンポジター) です。一般的に Quartz という場合は、この Quartz 2D を指すことが多いです。現在の Quartz の構造では、Quartz 2D、
QuickDraw、
OpenGL、
QuickTime それぞれの出力が、最終的に Quartz Compositor によって画面に描画されます。
Quartz の利用
Quartz の機能は、
Objective-C からは Cocoa API を通して、また C/C++ 言語からは Carbon API を通して利用可能です。また、
Apple は Quartz の
スクリプト言語バインディングの一つとして、
Python のバインディングを公式に提供しています。
Quartz の主な特徴
- - 解像度非依存のベクターベースシステム:拡大・縮小しても画質が劣化しないため、高精細な表示が可能です。
- - 浮動小数点による数学座標系:正確な描画処理を実現します。
- - 常時アンチエイリアシング:滑らかな描画を常に提供します。
- - アルファチャンネルのサポート:透明度を扱うことができ、複雑な表現が可能です。
- - オブジェクト指向の API:効率的な開発を支援します。
- - Unicode に対応した多国語文字描画ルーチン (Apple Type Services for Unicode Imaging):多言語環境での正確なテキスト表示を実現します。
Quartz Extreme と Quartz 2D Extreme (QuartzGL)
Mac OS X v10.2 (Jaguar) 以降では、環境に応じて GPU のジオメトリ演算ユニットを活用し、
CPU の負荷を軽減する
Quartz Extreme が実装されました。これは Quartz Compositor のバッファ合成を GPU 内部で行うシステムであり、
OpenGL との混在描画も可能にします。
さらに
[Mac OS X v10.4]] (Tiger) では、GPU のプログラマブルシェーダを用いて、描画演算をほぼ全てビデオチップ内で実行できる Quartz 2D Extreme ([[Mac OS X v10.5] で QuartzGL に名称変更) が隠し機能として搭載されました。ただし、多くの不具合を抱えたまま実装され、デフォルトではオフになっており、正式にはサポートされていません。
DPS から Quartz へ変更された理由
DPS から Quartz へと実装が変更された理由は、一説には Adobe のライセンス料が高額だったためと言われていました。しかし実際には、DPS では機能が不十分であり、現代的な描画システムとしてよりリッチな機能が必要とされたことが主な理由です。
関連項目