diff mbox

GLX: fix broken swap event size by using a generic event

Message ID 1304445561-9910-3-git-send-email-jbarnes@virtuousgeek.org (mailing list archive)
State New, archived
Headers show

Commit Message

Jesse Barnes May 3, 2011, 5:59 p.m. UTC
The existing event is too large for an XEvent meaning that the swap
count is never sent to clients.  Create a generic event instead for use
by new clients & servers.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 configure.ac |    2 +-
 glxproto.h   |   18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletions(-)
diff mbox

Patch

diff --git a/configure.ac b/configure.ac
index d88e6df..a3047e4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@ 
 AC_PREREQ([2.60])
-AC_INIT([GLProto], [1.4.12], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([GLProto], [1.4.13], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
 
diff --git a/glxproto.h b/glxproto.h
index 0ff44e3..d026d4d 100644
--- a/glxproto.h
+++ b/glxproto.h
@@ -1384,6 +1384,24 @@  typedef struct {
     CARD32 sbc_lo B32;
 } xGLXBufferSwapComplete;
 
+/* The above is actually too large to fit in an XEvent, so use a generic
+ * event so we can send the sbc count as well. */
+typedef struct {
+    BYTE type;
+    CARD8 extension;
+    CARD16 sequenceNumber B16;
+    CARD32 length B32; /* should always be 8 for this event */
+    CARD16 evtype B16;
+    CARD16 swap_event_type B16;
+    CARD32 drawable B32;
+    CARD32 ust_hi B32;
+    CARD32 ust_lo B32;
+    CARD32 msc_hi B32;
+    CARD32 msc_lo B32;
+    CARD32 sbc_hi B32;
+    CARD32 sbc_lo B32;
+} xGLXBufferSwapComplete2;
+
 /************************************************************************/
 
 /*