Xgl(エックスジーエル)は、
OpenGLを用いてデスクトップ環境を描画する
X Window Systemのアーキテクチャの一つです。従来のピクセル描画モデルからベクトル描画モデルへと移行することを目的としています。ノベル社のデビッド・レイブマン氏によって開発されました。
Xglの概要
近年のPCには3Dグラフィックス機能が搭載されており、Xglを利用することで、
X Window System上で高速かつ多彩なエフェクトを使用できるようになります。しかし、
NVIDIAやATIといったグラフィックカードベンダーがオープンソースのドライバーを十分に提供していないため、全ての環境でXglが動作するわけではありません。
開発当初は、開発プロセスが閉鎖的であるという問題が一部で議論を呼びましたが、2006年のX開発者カンファレンスで実装が発表されて以降、広く受け入れられるようになりました。
バックエンド
OpenGL自体には、ディスプレイの初期化や描画コンテキストを操作する機能はありません。そのため、
ウィンドウシステムに指示を与えるバックエンドが必要です。現在、主に2つの実装が存在します。
Xglx
Xglxは、最初に実装されたXglのバックエンドです。既存のXサーバ上で動作し、Xの
OpenGL拡張機能を利用して描画を行います。これはXnestと同様の仕組みですが、3Dゴーグルやデュアルモニタのサポートが難しいという問題点が指摘されています。将来的には、開発者向けの実装となる予定です。
Xegl
Xeglは、将来的なXglのバックエンドとして開発されています。描画コード自体はXglxとほぼ同じですが、
OpenGL描画のための初期化と描画コンテキストの管理を、Embedded GLのAPIを使って行います。現在の実装では、Mesaを通じてLinuxフレームバッファーやDRIによるグラフィックカードへの描画を行っています。開発当初はRADEON R200上でしか動作しませんでしたが、現在も開発が続けられています。
類似の技術
cairo
cairoは、
X Window Systemでベクトル描画を行うためのライブラリです。Xglと同様にglitzを経由して動作しますが、cairoをXgl上で動かすことも可能です。
Qt 4.0 (Arthur)
Qt 4.0にはArthurというベクトル描画システムが搭載されており、これもXgl上で動作可能です。
GNUstep (DisplayGhostscript)
GNUstepでは、DisplayGhostscriptを利用してデスクトップのベクトル描画を実現しています。
AIGLXは、
X Window System上で
OpenGLによるエフェクトを可能にするためのプロジェクトです。XglがXサーバを完全に置き換えるのに対し、
AIGLXはXの一部を拡張し、プロトコルを追加します。
AIGLXはXglのバックエンドの一つとなる可能性が高いとされています。
macOS (Quartz Extreme)
macOSでは、
OpenGLによるデスクトップ描画はQuartz Extremeという技術によって実現されています。
Windows Vistaでは、
Desktop Window Manager (DWM)という技術で同様の機能が提供されていますが、こちらはDirectXを使用しています。
Project Looking Glass
Project Looking Glassは、Javaで実装された3Dデスクトップ環境です。Xglと同様に、
OpenGLによるハードウェアアクセラレーションを利用しています。
Compizは、Xglを利用した最初の
ウィンドウマネージャです。デスクトップをキューブのように回転させたり、ウィンドウの動きをゼリーのように震わせたりするなどの特徴的な機能を持っています。開発者はXglと同じ人物であり、現在は
AIGLX上でも動作します。
まとめ
Xglは、
X Window Systemにおけるグラフィックス描画の進化を象徴する技術です。
OpenGLを活用することで、従来のデスクトップ環境に新しい可能性をもたらしました。関連技術と合わせて、今後の発展が期待されます。