Scroll to navigation

GLXSWAPBUFFERS() GLXSWAPBUFFERS()

名前

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 が生成される。
dpydrawable がそれぞれ呼び出しを行ったスレッドの現在の コンテクストに対応するディスプレイやドロウアブルでない場合や、 drawable がもはや有効でないウィンドウを指している場合には、 GLXBadCurrentWindow が生成される。

関連項目

glFlush, glXBindSwapBarrierSGIX, glXJoinSwapGroupSGIX, glXSwapIntervalSGI