次のように X サーバーへの接続を確立しています。
display = XOpenDisplay(NULL);
screen = DefaultScreen(display);
depth = DefaultDepth(display, screen);
なぜ「深さ」が常に 24 に設定されているのか疑問に思っています。合成をオフにすると 24 しかないと思いますが、実際には、合成をオンにしても 24 のままです。したがって、32 ビットの ARGB ビジュアルを取得するには、最初に深度を明示的に 32 に設定して XGetVisualInfo() を呼び出す必要があります。
ここで私の質問に: DefaultDepth() は一般に 24 を超えることはありませんか、それとも私のシステムだけですか? (私のグラフィックボードはやや古いです...)。CLUT ディスプレイの場合は 15、16、または 8 を返す可能性があることはわかっていますが、32 を返すことはできますか? それとも、ARGB 32 ビット ビジュアルを取得するために常に最初に XGetVisualInfo() を使用する必要がありますか?
ありがとう、
アンディ