summaryrefslogtreecommitdiff
path: root/src/xdemos/glxgears.c
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2010-01-26 10:14:11 -0800
committerBrian Paul <brianp@vmware.com>2010-01-26 12:00:51 -0700
commit116470adb8a2262be43003986b1d95b16b3202bc (patch)
tree3c00d464fff7e6b50de7f38ff9f1ebbc9fb1a12e /src/xdemos/glxgears.c
parent6b50eda2c39be3dd219022440cd28e3dbd15809d (diff)
glxgears: Support GLX_EXT_swap_control for querying the current swap interval.
Signed-off-by: Aaron Plattner <aplattner@nvidia.com> Signed-off-by: Brian Paul <brianp@vmware.com>
Diffstat (limited to 'src/xdemos/glxgears.c')
-rw-r--r--src/xdemos/glxgears.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/xdemos/glxgears.c b/src/xdemos/glxgears.c
index 2993c824..92c75caa 100644
--- a/src/xdemos/glxgears.c
+++ b/src/xdemos/glxgears.c
@@ -35,6 +35,7 @@
#include <X11/keysym.h>
#include <GL/gl.h>
#include <GL/glx.h>
+#include <GL/glxext.h>
#ifndef GLX_MESA_swap_control
#define GLX_MESA_swap_control 1
@@ -586,11 +587,17 @@ is_glx_extension_supported(Display *dpy, const char *query)
* Attempt to determine whether or not the display is synched to vblank.
*/
static void
-query_vsync(Display *dpy)
+query_vsync(Display *dpy, GLXDrawable drawable)
{
int interval = 0;
-
+#if defined(GLX_EXT_swap_control)
+ if (is_glx_extension_supported(dpy, "GLX_EXT_swap_control")) {
+ unsigned int tmp = -1;
+ glXQueryDrawable(dpy, drawable, GLX_SWAP_INTERVAL_EXT, &tmp);
+ interval = tmp;
+ } else
+#endif
if (is_glx_extension_supported(dpy, "GLX_MESA_swap_control")) {
PFNGLXGETSWAPINTERVALMESAPROC pglXGetSwapIntervalMESA =
(PFNGLXGETSWAPINTERVALMESAPROC)
@@ -749,7 +756,7 @@ main(int argc, char *argv[])
make_window(dpy, "glxgears", x, y, winWidth, winHeight, &win, &ctx);
XMapWindow(dpy, win);
glXMakeCurrent(dpy, win, ctx);
- query_vsync(dpy);
+ query_vsync(dpy, win);
if (printInfo) {
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));