glXSwapBuffers -
前面バッファと背面バッファを入れ換える
void
glXSwapBuffers( Display
*dpy,
GLXDrawable drawable )
引き数¶
- dpy
- X
サーバへの接続を指定する。
- drawable
- 交換したいバッファを持つドロウアブルを指定する。
glXSwapBuffers は、
drawable
の背面バッファの内容を表に出し、
これを
drawable
の前面バッファの内容にする。
この際に背面バッファの内容は未定義となる。
この更新は普通、
glXSwapBuffers
が呼ばれた直後ではなく、モニタの
次の垂直走査の間に行われる。
glXSwapBuffers
は復帰する前に暗黙的に
glFlush を実行する。
glXSwapBuffers
を呼び出した直後に次の
OpenGL
のコマンドが発行さ
れても、バッファの入れ換えが終了するまでは実行されない。
drawable
がダブルバッファを持つビジュアルに対して生成されていな
ければ、
glXSwapBuffers
は効果を持たない。この際にエラーメッセージ
は発行されない。
背面バッファの内容は入れ換えの際に未定義となる。これはバッファと同様に
ウィンドウにも適用される点に注意すること。
全ての GLX
レンダリングコンテクストは、どちらが前面バッファあるいは
背面バッファであるかについて、同じ状態を共有している。
したがって、複数のクライアントがダブルバッファを持つ同一のウィンドウを
レンダリングしている時、これらの全ては、クライアントのいずれかがバッファ
入れ換えのコマンドを発行する前にレンダリングを終えなければならない。
クライアントはこの同期処理を実装する責任を持っている。
これは普通、
glFinish
を実行し、それから共有メモリにおいてセマフォ
を用いてバッファ入れ換えの前に同期を取ることによって行われる。
エラー¶
drawable が有効な GLX
のドロウアブルでなければ、
GLXBadDrawable が生成される。
dpy と
drawable
がそれぞれ呼び出しを行ったスレッドの現在の
コンテクストに対応するディスプレイやドロウアブルでない場合や、
drawable
がもはや有効でないウィンドウを指している場合には、
GLXBadCurrentWindow
が生成される。
関連項目¶
glFlush,
glXBindSwapBarrierSGIX,
glXJoinSwapGroupSGIX,
glXSwapIntervalSGI