Scroll to navigation

GLXGETCONFIG() GLXGETCONFIG()

名前

glXGetConfig - GLX のビジュアルに関する情報を返す
 

書式

int glXGetConfig( Display *dpy,
	XVisualInfo  *vis,
	int  attrib,
	int  *value )
 

引き数

dpy
X サーバへの接続を指定する。
vis
問い合わせを行うビジュアルを指定する。 これは XVisualInfo 構造体へのポインタであり、 Visual への ポインタやビジュアル ID ではない。
attrib
ビジュアルに関して取得する属性を指定する。
value
要求した値が返される。

説明

glXGetConfigvalue にウィンドウの attrib 値を設定 するか、 vis について生成された GLX ピックスマップを設定する。 何らかの理由で設定に失敗すると、 glXGetConfig はエラーコードを返 す。 成功すれば 0 を返す。
attrib は以下のいずれかである:
GLX_USE_GL
指定したビジュアルで OpenGL のレンダリングがサポートされていれば True となり、サポートされていなければ False となる。
GLX_BUFFER_SIZE
カラーバッファごとのビット数。 RGBA ビジュアルの場合には、 GLX_BUFFER_SIZEGLX_RED_SIZE, GLX_GREEN_SIZE, GLX_BLUE_SIZE, GLX_ALPHA_SIZE の和となる。 カラーインデックスのビジュアルの場合には、 GLX_BUFFER_SIZE はカラー インデックスの大きさとなる。
GLX_LEVEL
ビジュアルのフレームバッファレベル。 レベル 0 はデフォルトのフレームバッファである。 正の値であるレベルはデフォルトのバッファにオーバーレイするバッファに対 応し、負の値であるレベルはデフォルトのバッファにアンダーレイするバッファ に対応する。
GLX_RGBA
カラーバッファが Red, Green, Blue, アルファ値を持つ場合に True となる。 カラーバッファがカラーインデックスを持つ場合に False となる。
GLX_DOUBLEBUFFER
カラーバッファが交換可能な前面/背面のペアで構成されている場合に True となり、そうでなければ False となる。
GLX_STEREO
カラーバッファが右/左のペアから構成されている場合に True となり、 そうでなければ False となる。
GLX_AUX_BUFFERS
利用可能な補助カラーバッファの数。 0 の場合は、補助カラーバッファが存在しないことを示す。
GLX_RED_SIZE
各カラーバッファに格納される Red 値のビット数。 GLX_RGBAFalse の場合は未定義である。
GLX_GREEN_SIZE
各カラーバッファに格納される Green 値のビット数。 GLX_RGBAFalse の場合は未定義である。
GLX_BLUE_SIZE
各カラーバッファに格納される Blue 値のビット数。 GLX_RGBAFalse の場合は未定義である。
GLX_ALPHA_SIZE
各カラーバッファに格納されるアルファ値のビット数。 GLX_RGBAFalse の場合は未定義である。
GLX_DEPTH_SIZE
デプスバッファのビット数。
GLX_STENCIL_SIZE
ステンシルバッファのビット数。
GLX_ACCUM_RED_SIZE
アキュームレーションバッファに格納される Red 値のビット数。
GLX_ACCUM_GREEN_SIZE
アキュームレーションバッファに格納される Green 値のビット数。
GLX_ACCUM_BLUE_SIZE
アキュームレーションバッファに格納される Blue 値のビット数。
GLX_ACCUM_ALPHA_SIZE
アキュームレーションバッファに格納されるアルファ値のビット数。
X プロトコルでは、単一のビジュアル ID を異なる bpp 値でインスタンス化 させることができる。 しかし、OpenGL でレンダリングされるウィンドウや GLX ピックスマップは、 カラーバッファの深さを GLX_BUFFER_SIZE としてインスタンス化しな ければならない。
GLX の実装では GL レンダリングをサポートするビジュアルをたくさんエクス ポートすることができるが、少なくとも 1 つの RGBA ビジュアルをサポート していなければならない。このビジュアルは少なくとも 1 つのカラーバッファ、 少なくとも 1 ビットであるステンシルバッファ、 少なくとも 12 ビットであるデプスバッファ、 1 つのアキュームレーションバッファを持たなければならない。 このビジュアルには、アルファビットプレーンはなくても構わない。 しかし、カラーバッファのサイズは、レベル 0 でサポートされている TrueColor, DirectColor, PseudoColor, or StaticColor ビジュアルのうち最も深さが大きいものと同じ大きさでな ければならず、レベル 0 で自分自身を利用可能にできなければならない。
さらに、X サーバが PseudoColor ビジュアルか StaticColor ビジュアルをフレームバッファ 0 でエクスポートしている場合、 カラーインデックス型のビジュアルもこのレベルで必要とされる。 このビジュアルは 少なくとも 1 つのカラーバッファ、 少なくとも 1 ビットであるステンシルバッファ、 少なくとも 12 ビットであるデプスバッファを持たなければならない。 このビジュアルは、レベル 0 でサポートされている PseudoColor ビジュアルと StaticColor ビジュアルのうち深さ が大きい方と同じだけのカラービットプレーンを持っていなければならない。
アプリケーションは、これらの条件に最も近いビジュアルを選択するように書 くのが好ましい。 不要なバッファを使ってウィンドウや GLX ピックスマップを生成すると、 レンダリング性能が出なかったり、割り当てられるリソースが乏しくなったり する。
 

注意

XVisualInfoXutil.h において定義されている。 これは visual, visualID, screen, depth 要素を 持つ構造体である。

エラー

dpy が GLX 機能拡張をサポートしていなければ、 GLX_NO_EXTENSION が返される。
vis のスクリーンが実際のスクリーンに対応していなければ、 GLX_BAD_SCREEN が返される。
attrib が有効な GLX 属性でなければ、 GLX_BAD_ATTRIBUTE が返 される。
vis が GLX をサポートしておらず、かつ GLX_USE_GL 以外の属 性がリクエストされた場合には、 GLX_BAD_VISUAL が返される。

関連項目

glXChooseVisual, glXCreateContext