GLX

GLX
原作者SGI
初回リリース1992
安定版リリース
1.4 / 2005年12月16日
書かれたC
ライセンスSGI FreeBライセンス[ 1 ]
Webサイトdri .freedesktop .org /wiki /GLX /

GLX(「Open GL Extension to the X Window System」の頭文字)は、 X Window System コアプロトコルの拡張であり、OpenGLX Window System間のインターフェース、および OpenGL 自体の拡張を提供します。GLX により、OpenGL を使用するプログラムは、X Window System が提供するウィンドウ内で OpenGL を使用できるようになります。GLX は、間接状態と直接状態という 2 つの「状態」を区別します。

歴史

Silicon Graphics社は、X Window SystemでOpenGLをサポートする取り組みの一環としてGLXを開発した。1999年、SGIはGLXをオープンソースライセンスでリリースし、[ 2 ] 2000年にXFree86ソースコードバージョン4.0に組み込んだ。そこから、コードはX.Org FoundationバージョンのX Window System X11R6.7.0にフォークされて継承された。2008年9月19日、SGIは新しいSGI FreeBライセンスバージョン2.0を作成した。これは「X.Orgが使用するフリーのX11ライセンスを反映」しており、「フリーおよびオープンソースソフトウェアコミュニティで広く受け入れられている「フリー」の定義を満たしている」。[ 3 ] 2009年、Free Software FoundationはSGI Free License Bをフリーソフトウェアライセンスとして、GLXを重要なフリーソフトウェアグラフィックスプロジェクトとして承認した。[ 4 ] [ 5 ] 2011年現在、GLXはバージョン1.4に達しています。

GLX APIの最初の内部実装はGLcoreと呼ばれ、[ 6 ] MesaのソフトウェアレンダラのバージョンをXサーバ内にロードし、OpenGLコマンドをウィンドウまたはピックスマップにレンダリングしました。DRIの開発により、ダイレクトコンテキストを介してハードウェアアクセラレーションされたOpenGLを使用する機能が追加されました(主にビデオゲームで使用)。 2006年に、ネストされたXgl XサーバとCompiz合成ウィンドウマネージャの普及により、Accelerated Indirect GLX( AIGLX )の開発につながりました。 AIGLXは、Xサーバ内にMesa DRIドライバをロードすることにより、GLX(間接コンテキスト)アプリケーションにハードウェアアクセラレーションをもたらします。 この方法により、間接コンテキストを使用するXクライアント間(それらはすべてXサーバ内の同じアドレス空間にあります)およびXクライアントと合成ウィンドウマネージャ間でのGLオブジェクトの共有が可能になり、合成が高速化されます。 2008年、GLcoreにおけるMesaソフトウェアレンダラへのバインディングは、と呼ばれるDRIインターフェースモジュールとして書き直され、swrast_dri.soMesaとXサーバの連携が改善されました。また、2008年にはDRIに代わる新しいDRI2が導入され、カーネルモード設定に基づく新しいモデルも導入されました。2011年には、 OpenGLに基づく汎用ハードウェアアクセラレーション2D Xドライバの追加を目的としたGlamorプロジェクトが開始されました。2013年、Adam JacksonはGLXコードを大幅に書き直し、Glamor、間接レンダリングなどからの多様なパスを、OpenGLのライブラリlibGLへの単一のパスに統合しました。[ 7 ]

特徴

X11に含まれるGLXデモ(glxgears)

GLX は 3 つの部分で構成されています。

  1. X Window System アプリケーションに OpenGL 機能を提供するAPI
  2. Xプロトコルの拡張であり、クライアント(OpenGLアプリケーション)がXサーバー(表示を担当するソフトウェア)に3Dレンダリングコマンドを送信できるようにします。クライアントソフトウェアとサーバーソフトウェアは、異なるコンピュータ上で実行できます。
  3. クライアントからレンダリングコマンドを受信し、インストールされた OpenGL ライブラリに渡す X サーバーの拡張機能

クライアントとサーバーが同じコンピュータ上で実行されており、適切なドライバーを搭載したアクセラレーション対応の3Dグラフィックカードが利用可能な場合、DRIによって最初の2つのコンポーネントをバイパスできます。この場合、クライアントアプリケーションは複数のAPIレイヤーを介してビデオハードウェアに直接アクセスできるようになります。

実装

参照

参考文献

  1. ^ oss-project-owners (2012). 「SGIフリーソフトウェアライセンスBの履歴と最新バージョン」 . Silicon Graphics International . 2017年4月20日時点のオリジナルよりアーカイブ。 2017年4月11日閲覧
  2. ^ Jon Leech (2012). 「OpenGL サンプル実装」 . Silicon Graphics International . 2011年5月14日時点のオリジナルよりアーカイブ。 2017年4月11日閲覧
  3. ^ 「SGI、OpenGLへの貢献をさらに拡大」 2008年9月19日。2012年2月11日時点のオリジナルよりアーカイブ
  4. ^ Lee, Matt (2008年9月19日). 「SGI、GNU/Linux 3Dデスクトップを解放してくれてありがとう!」 .フリーソフトウェア財団. 2017年4月11日閲覧。
  5. ^ brett (2009年1月13日). 「3Dグラフィックスは100%フリーソフトウェアです」 . フリーソフトウェア財団. 2017年4月11日閲覧。
  6. ^ "DRI – GLcore" . freedesktop.org . 2016年7月20日. 2017年4月11日閲覧
  7. ^ Jackson, Adam (2014-02-04). 「GLXを書き換えてXを書き換える」 . Linux.conf.au . 2021年12月21日時点のオリジナルよりアーカイブ。 2017年4月11日閲覧