diff options
author | Aaron Plattner <[email protected]> | 2010-01-26 10:14:11 -0800 |
---|---|---|
committer | Brian Paul <[email protected]> | 2010-01-26 12:00:51 -0700 |
commit | cec0e7c086d04c73e5c0a516cb6e3df9bc250cb2 (patch) | |
tree | 57b264624f0e7f74dbdcd2712401398d60603bcf | |
parent | 782f66c8a2424245ad23d17ba2e4bd9e7235c452 (diff) |
glxgears: Support GLX_EXT_swap_control for querying the current swap interval.
Signed-off-by: Aaron Plattner <[email protected]>
Signed-off-by: Brian Paul <[email protected]>
-rw-r--r-- | progs/xdemos/glxgears.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/progs/xdemos/glxgears.c b/progs/xdemos/glxgears.c index 2993c824161..92c75caa5e6 100644 --- a/progs/xdemos/glxgears.c +++ b/progs/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)); |