Xgl

ウィキペディアから無料の百科事典

Xgl
開発元 Compiz
初版 2006年1月2日 (18年前) (2006-01-02)
種別 ディスプレイサーバ
公式サイト en.opensuse.org/xgl ウィキデータを編集
テンプレートを表示

Xgl(エックスジーエル)はデスクトップOpenGLを使って描画するX Window Systemのアーキテクチャの1つ。Xサーバを現在のピクセル描画モデルからベクトル描画モデルに移行するものである。ノベル社のデビッド・レイブマン (David Reveman) によって開発された。

最近のPCは3D機能付きのグラフィックカードを搭載しているため、Xglを使用することによりX上で高速で多彩なエフェクトが使用できる。しかしながら、NVIDIAATIのようなグラフィックカードベンダーはオープンソースのドライバーをほとんど提供していないので、現在のXサーバがサポートする全てのマシン上でXglが動作するわけではない[1]

2005年に、非常に閉鎖的な開発のされ方が問題になり、一部の開発コミュニティで論争が起こったことがある。しかし、2006年のX開発者カンファレンスで実装が発表されてからは好意的に受け入れられた。

バックエンド[編集]

OpenGL自体にはディスプレイを初期化したり、描画のコンテキストを操作する機能はない。そこでウィンドウシステム自体にこれらの指示を与えるようなバックエンドが必要になる。今のところこれには2つの実装があるが、初期化担当の部分を除けば違いはほとんどない。

Xglx[編集]

Xglxは最初に実装されたXglバックエンドである。現在使用しているXサーバの上で動作し、XのOpenGL拡張によって描画する。これはちょうど、Xnestの機能と同じようなものである。しかし、このような動作方法だと3Dゴーグルやデュアルモニタのサポートが難しくなるということが、2006年のX開発者カンファレンスでNVIDIA社によって指摘されている[2]。将来的には、これは開発者だけが使用するものになる予定である。

Xegl[編集]

Xeglは将来のXglバックエンドである。描画担当のコードはXglxとほとんど違いはないが、OpenGL描画のための初期化と描画コンテキスト管理を、Embedded GLのAPIによって行う。現在の実装ではMesaによってLinuxフレームバッファーかDRIによるグラフィックカードへの描画を行っている。2005年の段階ではRADEON R200上でしか動作しない。現在も開発中である。

類似の技術[編集]

  • cairoはXでベクトル描画を行うためのライブラリである。現在はXgl同様、glitz経由で動いているが、cairoをXgl上で動かすこともできる。また、Qt 4.0はArthurというベクトル描画システムを備えているが、これも同様にXgl上でも動かすことができる。
  • GNUstepではDisplayGhostscriptによってデスクトップのベクトル描画が可能である。
  • AIGLXはX上でOpenGLによるエフェクトを可能にするためのプロジェクトである。Fedora Projectによって開発された。XglがXサーバを完全に置き換えてしまうのに対し、こちらはXの一部を拡張し、プロトコルを追加している。しかし、AIGLXはXglのバックエンドの一つになる可能性が高いと言われている。
  • macOSでは、OpenGLによるデスクトップの描画はQuartz Extremeと呼ばれる技術によって使用されている。
  • Windows Vistaにおいても同様の技術がDesktop Window Manager (DWM) という名前で搭載されている。こちらはOpenGLではなくDirectXを使っている。
  • Project Looking GlassJavaによる3Dデスクトップ環境である。Xglと同様、OpenGLによるハードウェアアクセラレーションを利用している。

Compiz[編集]

CompizはXglを利用した最初のウィンドウマネージャである。デスクトップをキューブのように回転させたり、ウィンドウ動作をゼリーのように震わせる機能が特徴である。開発者はXglと同じである。現在はAIGLXの上でも動作する。

外部リンク[編集]

  • Kororaa Linux Xglを搭載したLinuxディストリビューション。ライブCDにより環境を汚さずXglが体験できる。

脚注[編集]