Quartz(クオーツ)は、Appleオペレーティングシステム macOS の描画コアエンジン。前身であるNeXTDPSに代わり、PDFベースの描画モデルを採用したもの。三次ベジェ曲線を描画プリミティブとするベクトル型システムで、QuickDrawとの互換性はない。なお、QuickDrawはCarbonアプリケーションの互換性のためmacOSにも残されている。

細かく言うと、アプリケーションで個々のバッファに描画を行うプリミティブはQuartz 2Dと呼び、それらを最終的にGPUのフレームバッファに合成する部分はQuartz Compositor(クオーツ・コンポジター)という。単にQuartzという場合は、大抵Quartz 2Dのことである。現在のQuartzの構造では、Quartz 2D、QuickDrawOpenGLQuickTimeの各出力が最終的にQuartz Compositorによって画面に描画される形になっている。

Quartzの機能は、Objective-CからはCocoa APIを通して、またC/C++言語からはCarbon APIを通して利用できる。またAppleはQuartzのスクリプト言語バインディングのひとつとしてPythonのバインディングを公式に用意している。

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(Leopard)でQuartzGLに名称変更[1])が隠し機能として搭載されている(多くの不具合を抱えたまま実装されオフにされており、正式にはサポートされていない[1])。

DPSからQuartzへと実装が変更された理由は、一説にはAdobeのライセンス料が高額だったためといわれていた。しかし、実際にはDPSでは機能が足りず、現代的な描画システムとしてふさわしいリッチなものが必要であったことが主な理由である。[要出典]

脚注 編集

  1. ^ a b OS X ハッキング!(298) 名前が変わった「QuartzGL」でSafariが速くなる?”. マイナビニュース (2008年11月4日). 2019年11月6日閲覧。

関連項目 編集