glXSwapBuffers — exchange front and back buffers
void glXSwapBuffers( | Display * | dpy, |
GLXDrawable | drawable) ; |
dpy
Specifies the connection to the X server.
drawable
Specifies the drawable whose buffers are to be swapped.
glXSwapBuffers
promotes the contents of the back buffer of drawable
to become
the contents of the front buffer of drawable
.
The contents of the back buffer then become undefined.
The update typically takes place during the vertical retrace of
the monitor,
rather than immediately after glXSwapBuffers
is called.
glXSwapBuffers
performs an implicit glFlush before it returns.
Subsequent OpenGL commands may be issued immediately after calling glXSwapBuffers
,
but are not executed until the buffer exchange is completed.
If drawable
was not created with respect to a double-buffered visual,
glXSwapBuffers
has no effect,
and no error is generated.
The contents of the back buffer become undefined after a swap. Note that this applies to pixel buffers as well as windows.
All GLX rendering contexts share the same notion of which are front buffers and which are back buffers. One consequence is that when multiple clients are rendering to the same double-buffered window, all of them should finish rendering before one of them issues the command to swap buffers. The clients are responsible for implementing this synchronization. Typically this is accomplished by executing glFinish and then using a semaphore in shared memory to rendezvous before swapping.
GLXBadDrawable
is generated if drawable
is not a valid GLX drawable.
GLXBadCurrentWindow
is generated if dpy
and drawable
are
respectively the display and drawable associated with the current
context of the calling thread, and drawable
identifies a window that
is no longer valid.
Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.