1

私はこれに非常によく似たコードに取り組んでいます:

http://xcb.freedesktop.org/opengl/

デフォルトのフレームバッファ構成を使用すると問題なく動作しますが、特定の構成を照会しようとすると失敗します。私は、 VISUAL_ID(visualIDコード例では)いつでも失敗し、screen->root_visual異なる値であると判断しました。

エラーメッセージは次のとおりです。

X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  135 (GLX)
  Minor opcode of failed request:  31 (X_GLXCreateWindow)
  Resource id in failed request:  0x1600003
  Serial number of failed request:  32
  Current serial number in output stream:  34

これを修正するにはどうすればよいですか?

4

1 に答える 1

2

最も可能性の高いイベントは、xcb_create_window()呼び出しが失敗することです(それを使用xcb_create_window_checked()xcb_request_check()て確認します)。深さとして指定されているため失敗しますがCOPY_FROM_PARENT、必要な視覚的な深さと一致しません。

使用しているビジュアルの深さを照会し、それをにパスする必要がありますxcb_create_window()

更新親とは異なる深さのウィンドウを作成する場合は、境界ピクセルを指定する必要があります。おそらく、背景ピクセルとカラーマップも指定する必要があります。たとえば、この質問を参照してください。

于 2012-06-18T06:14:07.443 に答える