glx: xcbified glXSwapBuffers
authorRALOVICH, Kristóf <tade60@freemail.hu>
Tue, 4 Nov 2008 16:30:21 +0000 (17:30 +0100)
committerBrian Paul <brian.paul@tungstengraphics.com>
Wed, 26 Nov 2008 17:02:11 +0000 (10:02 -0700)
src/glx/x11/glxcmds.c

index 93fc40c28486b6930c4c96e334c8b0e8a9e8cfca..ec5ec4c3f07058b8e1bf355fdb40444cb15f63fe 100644 (file)
@@ -865,7 +865,6 @@ PUBLIC void glXDestroyGLXPixmap(Display *dpy, GLXPixmap glxpixmap)
 
 PUBLIC void glXSwapBuffers(Display *dpy, GLXDrawable drawable)
 {
-    xGLXSwapBuffersReq *req;
     GLXContext gc;
     GLXContextTag tag;
     CARD8 opcode;
@@ -896,6 +895,13 @@ PUBLIC void glXSwapBuffers(Display *dpy, GLXDrawable drawable)
        tag = 0;
     }
 
+#ifdef USE_XCB
+    xcb_connection_t* c = XGetXCBConnection(dpy);
+    xcb_glx_swap_buffers(c, tag, drawable);
+    xcb_flush(c);
+#else
+    xGLXSwapBuffersReq *req;
+
     /* Send the glXSwapBuffers request */
     LockDisplay(dpy);
     GetReq(GLXSwapBuffers,req);
@@ -906,6 +912,7 @@ PUBLIC void glXSwapBuffers(Display *dpy, GLXDrawable drawable)
     UnlockDisplay(dpy);
     SyncHandle();
     XFlush(dpy);
+#endif /* USE_XCB */
 }