GLXGETCONFIG

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

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

引き数

dpy X サーバへの接続を指定する。

vis 問い合わせを行うビジュアルを指定する。 これは XVisualInfo 構造体へのポインタであり、Visual への ポインタやビジュアル ID ではない。

attrib
    ビジュアルに関して取得する属性を指定する。

value
    要求した値が返される。

説明
glXGetConfig は value にウィンドウの attrib 値を設定 するか、vis について生成された GLX ピックスマップを設定する。 何らかの理由で設定に失敗すると、glXGetConfig はエラーコードを返 す。 成功すれば 0 を返す。

attrib は以下のいずれかである:

GLX_USE_GL
    指定したビジュアルで OpenGL のレンダリングがサポートされていれば True となり、サポートされていなければ False となる。

GLX_BUFFER_SIZE
    カラーバッファごとのビット数。 RGBA ビジュアルの場合には、GLX_BUFFER_SIZE は GLX_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_RGBA が False の場合は未定義である。

GLX_GREEN_SIZE
    各カラーバッファに格納される Green 値のビット数。 GLX_RGBA が False の場合は未定義である。

GLX_BLUE_SIZE
    各カラーバッファに格納される Blue 値のビット数。 GLX_RGBA が False の場合は未定義である。

GLX_ALPHA_SIZE
    各カラーバッファに格納されるアルファ値のビット数。 GLX_RGBA が False の場合は未定義である。

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 ピックスマップを生成すると、 レンダリング性能が出なかったり、割り当てられるリソースが乏しくなったり する。

注意
XVisualInfo は Xutil.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