rpms/xscope/devel 0001-Add-basic-support-for-GLX-extension.patch, NONE, 1.1 xscope.spec, 1.3, 1.4

Yanko Kaneti yaneti at fedoraproject.org
Sat Jul 24 10:38:17 UTC 2010


Author: yaneti

Update of /cvs/pkgs/rpms/xscope/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv22822

Modified Files:
	xscope.spec 
Added Files:
	0001-Add-basic-support-for-GLX-extension.patch 
Log Message:
- Include an upstream patch for basic GLX support


0001-Add-basic-support-for-GLX-extension.patch:
 Makefile.am  |    2 
 decode_glx.c |  239 ++++++++++++++++++++++
 extensions.c |    3 
 extensions.h |    1 
 glxscope.h   |   74 ++++++
 print_glx.c  |  636 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 x11.h        |    6 
 7 files changed, 959 insertions(+), 2 deletions(-)

--- NEW FILE 0001-Add-basic-support-for-GLX-extension.patch ---
>From 6fa3e0c937885e0302e8d7258cc94371203a906c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh at bitplanet.net>
Date: Fri, 23 Jul 2010 12:32:45 -0400
Subject: [PATCH] Add basic support for GLX extension
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Kristian Høgsberg <krh at bitplanet.net>
---
 Makefile.am  |    2 +
 decode_glx.c |  239 ++++++++++++++++++++++
 extensions.c |    3 +-
 extensions.h |    1 +
 glxscope.h   |   74 +++++++
 print_glx.c  |  636 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 x11.h        |    5 +
 7 files changed, 959 insertions(+), 1 deletions(-)
 create mode 100644 decode_glx.c
 create mode 100644 glxscope.h
 create mode 100644 print_glx.c

diff --git a/Makefile.am b/Makefile.am
index a9426c7..076399d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -33,6 +33,7 @@ xscope_SOURCES =	\
 	common.c \
 	decode11.c \
 	decode_bigreq.c \
+	decode_glx.c \
 	decode_lbx.c \
 	decode_randr.c \
 	decode_render.c \
@@ -47,6 +48,7 @@ xscope_SOURCES =	\
 	nas.h \
 	print11.c \
 	print_bigreq.c \
+	print_glx.c \
 	print_lbx.c \
 	print_randr.c \
 	print_render.c \
diff --git a/decode_glx.c b/decode_glx.c
new file mode 100644
index 0000000..2ddf1af
--- /dev/null
+++ b/decode_glx.c
@@ -0,0 +1,239 @@
+/*
+ * Copyright © 2010 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Kristian Høgsberg <krh at bitplanet.net>
+ *
+ */
+
+
+#include <stdio.h>
+#include <X11/X.h>
+#include <X11/Xproto.h>
+#define _GLX_SERVER_
+#include "scope.h"
+#include "x11.h"
+#include "glxscope.h"
+#include "extensions.h"
+
+static unsigned char GLXRequest, GLXError, GLXEvent;
+#define GLXNError	13
+
+
+static void
+glx_decode_req (
+    FD fd,
+    const unsigned char *buf)
+{
+  short Major = IByte (&buf[0]);
+  short Minor = IByte (&buf[1]);
+
+  switch (Minor) {
+  case 1: GLXRender (fd, buf); break;
+  case 2: GLXRenderLarge (fd, buf); break;
+  case 3: GLXCreateContext (fd, buf); break;
+  case 4: GLXDestroyContext (fd, buf); break;
+  case 5: GLXMakeCurrent (fd, buf); ExtendedReplyExpected (fd, Major, Minor); break;
+  case 6: GLXIsDirect (fd, buf); ExtendedReplyExpected (fd, Major, Minor); break;
+  case 7: GLXQueryVersion (fd, buf); ExtendedReplyExpected (fd, Major, Minor); break;
+  case 8: GLXWaitGL (fd, buf); break;
+  case 9: GLXWaitX (fd, buf); break;
+  case 10: GLXCopyContext (fd, buf); break;
+  case 11: GLXSwapBuffers (fd, buf); break;
+  case 12: GLXUseXFont (fd, buf); break;
+  case 13: GLXCreateGLXPixmap (fd, buf); break;
+  case 14: GLXGetVisualConfigs (fd, buf); ExtendedReplyExpected (fd, Major, Minor); break;
+  case 15: GLXDestroyGLXPixmap (fd, buf); break;
+  case 16: GLXVendorPrivate (fd, buf); break;
+  case 17: GLXVendorPrivateWithReply (fd, buf); ExtendedReplyExpected (fd, Major, Minor); break;
+  case 18: GLXQueryExtensionsString (fd, buf); ExtendedReplyExpected (fd, Major, Minor); break;
+  case 19: GLXQueryServerString (fd, buf); ExtendedReplyExpected (fd, Major, Minor); break;
+  case 20: GLXClientInfo (fd, buf); break;
+  case 21: GLXGetFBConfigs (fd, buf); ExtendedReplyExpected (fd, Major, Minor); break;
+  case 22: GLXCreatePixmap (fd, buf); break;
+  case 23: GLXDestroyPixmap (fd, buf); break;
+  case 24: GLXCreateNewContext (fd, buf); break;
+  case 25: GLXQueryContext (fd, buf); ExtendedReplyExpected (fd, Major, Minor); break;
+  case 26: GLXMakeContextCurrent (fd, buf); ExtendedReplyExpected (fd, Major, Minor); break;
+  case 27: GLXCreatePbuffer (fd, buf); break;
+  case 28: GLXDestroyPbuffer (fd, buf); break;
+  case 29: GLXGetDrawableAttributes (fd, buf); ExtendedReplyExpected (fd, Major, Minor); break;
+  case 30: GLXChangeDrawableAttributes (fd, buf); break;
+  case 31: GLXCreateWindow (fd, buf); break;
+  case 32: GLXDestroyWindow (fd, buf); break;
+  default:
+    ExtendedRequest(fd, buf);
+    ExtendedReplyExpected(fd, Major, Minor);
+    break;
+  }
+}
+
+static void
+glx_decode_reply (
+    FD fd,
+    const unsigned char *buf,
+    short RequestMinor)
+{
+    switch (RequestMinor) {
+    case 5: GLXMakeCurrentReply (fd, buf); break;
+    case 6: GLXIsDirectReply (fd, buf); break;
+    case 7: GLXQueryVersionReply (fd, buf); break;
+    case 14: GLXGetVisualConfigsReply (fd, buf); break;
+    case 17: GLXVendorPrivateWithReplyReply (fd, buf); break;
+    case 18: GLXQueryExtensionsStringReply (fd, buf); break;
+    case 19: GLXQueryServerStringReply (fd, buf); break;
+    case 21: GLXGetFBConfigsReply (fd, buf); break;
+    case 25: GLXQueryContextReply (fd, buf); break;
+    case 26: GLXMakeContextCurrentReply (fd, buf); break;
+    case 29: GLXGetDrawableAttributesReply (fd, buf); break;
+    default: UnknownReply(buf); break;
+    }
+}
+
+static void
+glx_decode_error (
+    FD fd,
+    const unsigned char *buf)
+{
+    short error = IByte(&buf[1]) - GLXError;
+  
+    switch (error) {
+    case 0: GLXBadContextError (fd, buf); break;
+    case 1: GLXBadContextStateError (fd, buf); break;
+    case 2: GLXBadDrawableError (fd, buf); break;
+    case 3: GLXBadPixmapError (fd, buf); break;
+    case 4: GLXBadContextTagError (fd, buf); break;
+    case 5: GLXBadCurrentWindowError (fd, buf); break;
+    case 6: GLXBadRenderRequestError (fd, buf); break;
+    case 7: GLXBadLargeRequestError (fd, buf); break;
+    case 8: GLXUnsupportedPrivateRequestError (fd, buf); break;
+    case 9: GLXBadFBConfigError (fd, buf); break;
+    case 10: GLXBadPbufferError (fd, buf); break;
+    case 11: GLXBadCurrentDrawableError (fd, buf); break;
+    case 12: GLXBadWindowError (fd, buf); break;
+    default:
+	break;
+    }
+}
+
+static void
+glx_decode_event (
+    FD fd,
+    const unsigned char *buf)
+{
+  short	event = IByte(&buf[0]) - GLXEvent;
+
+  switch (event) {
+    break;
+  }
+}
+
+void
+InitializeGLX (const unsigned char *buf)
+{
+  TYPE    p;
+  int	errcode;
+
+  GLXRequest = (unsigned char)(buf[9]);
+  GLXEvent = (unsigned char)(buf[10]);
+  GLXError = (unsigned char)(buf[11]);
+
+  DefineEValue (&TD[REQUEST], (unsigned long) GLXRequest, "GlxRequest");
+  DefineEValue (&TD[REPLY], (unsigned long) GLXRequest, "GlxReply");
+
+  DefineEValue (&TD[EVENT], (unsigned long) GLXEvent, "GlxEvent");
+
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 0, "GLXBadContext");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 1, "GLXBadContextState");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 2, "GLXBadDrawable");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 3, "GLXBadPixmap");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 4, "GLXBadContextTag");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 5, "GLXBadCurrentWindow");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 6, "GLXBadRenderRequest");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 7, "GLXBadLargeRequest");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 8, "GLXUnsupportedPrivateRequest");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 9, "GLXBadFBConfig");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 10, "GLXBadPbuffer");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 11, "GLXBadCurrentDrawable");
+  DefineEValue (&TD[ERROR], (unsigned long) GLXError + 12, "GLXBadWindow");
+
+
+  p = DefineType(GLXREQUEST, ENUMERATED, "GLXREQUEST", (PrintProcType) PrintENUMERATED);
+  DefineEValue(p, 1L, "GLXRender");
+  DefineEValue(p, 2L, "GLXRenderLarge");
+  DefineEValue(p, 3L, "GLXCreateContext");
+  DefineEValue(p, 4L, "GLXDestroyContext");
+  DefineEValue(p, 5L, "GLXMakeCurrent");
+  DefineEValue(p, 6L, "GLXIsDirect");
+  DefineEValue(p, 7L, "GLXQueryVersion");
+  DefineEValue(p, 8L, "GLXWaitGL");
+  DefineEValue(p, 9L, "GLXWaitX");
+  DefineEValue(p, 10L, "GLXCopyContext");
+  DefineEValue(p, 11L, "GLXSwapBuffers");
+  DefineEValue(p, 12L, "GLXUseXFont");
+  DefineEValue(p, 13L, "GLXCreateGLXPixmap");
+  DefineEValue(p, 14L, "GLXGetVisualConfigs");
+  DefineEValue(p, 15L, "GLXDestroyGLXPixmap");
+  DefineEValue(p, 16L, "GLXVendorPrivate");
+  DefineEValue(p, 17L, "GLXVendorPrivateWithReply");
+  DefineEValue(p, 18L, "GLXQueryExtensionsString");
+  DefineEValue(p, 19L, "GLXQueryServerString");
+  DefineEValue(p, 20L, "GLXClientInfo");
+  DefineEValue(p, 21L, "GLXGetFBConfigs");
+  DefineEValue(p, 22L, "GLXCreatePixmap");
+  DefineEValue(p, 23L, "GLXDestroyPixmap");
+  DefineEValue(p, 24L, "GLXCreateNewContext");
+  DefineEValue(p, 25L, "GLXQueryContext");
+  DefineEValue(p, 26L, "GLXMakeContextCurrent");
+  DefineEValue(p, 27L, "GLXCreatePbuffer");
+  DefineEValue(p, 28L, "GLXDestroyPbuffer");
+  DefineEValue(p, 29L, "GLXGetDrawableAttributes");
+  DefineEValue(p, 30L, "GLXChangeDrawableAttributes");
+  DefineEValue(p, 31L, "GLXCreateWindow");
+  DefineEValue(p, 32L, "GLXDestroyWindow");
+
+  p = DefineType(GLXREPLY, ENUMERATED, "GLXREPLY", (PrintProcType) PrintENUMERATED);
+  DefineEValue(p, 17L, "GLXVendorPrivateWithReply");
+  DefineEValue(p, 5L, "GLXMakeCurrentReply");
+  DefineEValue(p, 6L, "GLXIsDirectReply");
+  DefineEValue(p, 7L, "GLXQueryVersionReply");
+  DefineEValue(p, 14L, "GLXGetVisualConfigsReply");
+  DefineEValue(p, 17L, "GLXVendorPrivateWithReplyReply");
+  DefineEValue(p, 18L, "GLXQueryExtensionsStringReply");
+  DefineEValue(p, 19L, "GLXQueryServerStringReply");
+  DefineEValue(p, 21L, "GLXGetFBConfigsReply");
+  DefineEValue(p, 25L, "GLXQueryContextReply");
+  DefineEValue(p, 26L, "GLXMakeContextCurrentReply");
+  DefineEValue(p, 29L, "GLXGetDrawableAttributesReply");
+
+  p = DefineType(GLXEVENT, ENUMERATED, "GLXEVENT", (PrintProcType) PrintENUMERATED);
+  DefineEValue (p, 0L, "PbufferClobberEvent");
+  DefineEValue (p, 1L, "BufferSwapComplete");
+
+  InitializeExtensionDecoder(GLXRequest, glx_decode_req,
+			     glx_decode_reply);
+  InitializeExtensionEventDecoder(GLXEvent, glx_decode_event);
+  for (errcode = GLXError; errcode < (GLXError + GLXNError) ;
+       errcode ++) {
+      InitializeExtensionErrorDecoder(errcode, glx_decode_error);
+  }
+}
diff --git a/extensions.c b/extensions.c
index d1007ba..a904db6 100644
--- a/extensions.c
+++ b/extensions.c
@@ -42,7 +42,8 @@ static const struct extension_decoders decodable_extensions[] = {
     { "NCD-WinCenterPro",	InitializeWCP },
     { "RANDR",			InitializeRANDR },
     { "RENDER",			InitializeRENDER },
-    { NULL, NULL } /* List terminator - keep last */
+    { "GLX",			InitializeGLX },
+   { NULL, NULL } /* List terminator - keep last */
 };
 
 /* all extensions we know about */
diff --git a/extensions.h b/extensions.h
index 4c1b072..715d9e3 100644
--- a/extensions.h
+++ b/extensions.h
@@ -48,6 +48,7 @@ extern void ExtensionEvent(FD fd, const unsigned char *buf, short Event);
 
 /* X11 Extension decoders in decode_*.c */
 extern void InitializeBIGREQ	(const unsigned char *buf);
+extern void InitializeGLX	(const unsigned char *buf);
 extern void InitializeLBX	(const unsigned char *buf);
 extern void InitializeMITSHM	(const unsigned char *buf);
 extern void InitializeRANDR	(const unsigned char *buf);
diff --git a/glxscope.h b/glxscope.h
new file mode 100644
index 0000000..89f1227
--- /dev/null
+++ b/glxscope.h
@@ -0,0 +1,74 @@
+#ifndef _GLXSCOPE_H_
+#define _GLXSCOPE_H_
+
+#define GLXREQUESTHEADER  "GLXREQUEST"
+#define GLXREPLYHEADER	  "GLXREPLY"
+
+/*
+  To aid in making the choice between level 1 and level 2, we
+  define the following define, which does not print relatively
+  unimportant fields.
+*/
+
+#define printfield(a,b,c,d,e) if (Verbose > 1) PrintField(a,b,c,d,e)
+
+extern void GLXRender			(FD fd, const unsigned char *buf);
+extern void GLXRenderLarge		(FD fd, const unsigned char *buf);
+extern void GLXCreateContext		(FD fd, const unsigned char *buf);
+extern void GLXDestroyContext		(FD fd, const unsigned char *buf);
+extern void GLXMakeCurrent		(FD fd, const unsigned char *buf);
+extern void GLXMakeCurrentReply		(FD fd, const unsigned char *buf);
+extern void GLXIsDirect			(FD fd, const unsigned char *buf);
+extern void GLXIsDirectReply		(FD fd, const unsigned char *buf);
+extern void GLXQueryVersion		(FD fd, const unsigned char *buf);
+extern void GLXQueryVersionReply	(FD fd, const unsigned char *buf);
+extern void GLXWaitGL			(FD fd, const unsigned char *buf);
+extern void GLXWaitX			(FD fd, const unsigned char *buf);
+extern void GLXCopyContext		(FD fd, const unsigned char *buf);
+extern void GLXSwapBuffers		(FD fd, const unsigned char *buf);
+extern void GLXUseXFont			(FD fd, const unsigned char *buf);
+extern void GLXCreateGLXPixmap		(FD fd, const unsigned char *buf);
+extern void GLXGetVisualConfigs		(FD fd, const unsigned char *buf);
+extern void GLXGetVisualConfigsReply	(FD fd, const unsigned char *buf);
+extern void GLXDestroyGLXPixmap		(FD fd, const unsigned char *buf);
+extern void GLXVendorPrivate		(FD fd, const unsigned char *buf);
+extern void GLXVendorPrivateWithReply	(FD fd, const unsigned char *buf);
+extern void GLXVendorPrivateWithReplyReply(FD fd, const unsigned char *buf);
+extern void GLXQueryExtensionsString	(FD fd, const unsigned char *buf);
+extern void GLXQueryExtensionsStringReply(FD fd, const unsigned char *buf);
+extern void GLXQueryServerString	(FD fd, const unsigned char *buf);
+extern void GLXQueryServerStringReply	(FD fd, const unsigned char *buf);
+extern void GLXClientInfo		(FD fd, const unsigned char *buf);
+extern void GLXGetFBConfigs		(FD fd, const unsigned char *buf);
+extern void GLXGetFBConfigsReply	(FD fd, const unsigned char *buf);
+extern void GLXCreatePixmap		(FD fd, const unsigned char *buf);
+extern void GLXDestroyPixmap		(FD fd, const unsigned char *buf);
+extern void GLXCreateNewContext		(FD fd, const unsigned char *buf);
+extern void GLXQueryContext		(FD fd, const unsigned char *buf);
+extern void GLXQueryContextReply	(FD fd, const unsigned char *buf);
+extern void GLXMakeContextCurrent	(FD fd, const unsigned char *buf);
+extern void GLXMakeContextCurrentReply	(FD fd, const unsigned char *buf);
+extern void GLXCreatePbuffer		(FD fd, const unsigned char *buf);
+extern void GLXDestroyPbuffer		(FD fd, const unsigned char *buf);
+extern void GLXGetDrawableAttributes	(FD fd, const unsigned char *buf);
+extern void GLXGetDrawableAttributesReply(FD fd, const unsigned char *buf);
+extern void GLXChangeDrawableAttributes	(FD fd, const unsigned char *buf);
+extern void GLXCreateWindow		(FD fd, const unsigned char *buf);
+extern void GLXDestroyWindow		(FD fd, const unsigned char *buf);
+
+extern void GLXBadContextError		(FD fd, const unsigned char *buf);
+extern void GLXBadContextStateError	(FD fd, const unsigned char *buf);
+extern void GLXBadDrawableError		(FD fd, const unsigned char *buf);
+extern void GLXBadPixmapError		(FD fd, const unsigned char *buf);
+extern void GLXBadContextTagError	(FD fd, const unsigned char *buf);
+extern void GLXBadCurrentWindowError	(FD fd, const unsigned char *buf);
+extern void GLXBadRenderRequestError	(FD fd, const unsigned char *buf);
+extern void GLXBadLargeRequestError	(FD fd, const unsigned char *buf);
+extern void GLXUnsupportedPrivateRequestError(FD fd, const unsigned char *buf);
+extern void GLXBadFBConfigError		(FD fd, const unsigned char *buf);
+extern void GLXBadPbufferError		(FD fd, const unsigned char *buf);
+extern void GLXBadCurrentDrawableError	(FD fd, const unsigned char *buf);
+extern void GLXBadWindowError		(FD fd, const unsigned char *buf);
+
+#endif
+
diff --git a/print_glx.c b/print_glx.c
new file mode 100644
index 0000000..3559df0
--- /dev/null
+++ b/print_glx.c
@@ -0,0 +1,636 @@
+/*
+ * Copyright © 2010 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Kristian Høgsberg <krh at bitplanet.net>
+ *
+ */
+
+#include "scope.h"
+#include "x11.h"
+#include "glxscope.h"
+
+/* Print the portion of the glx request header common to all requests */
+static inline void
+GlxRequestHeader (FD fd, const unsigned char *buf)
+{
+  PrintField (buf, 0, 1, REQUEST, REQUESTHEADER);
+  PrintField (buf, 1, 1, GLXREQUEST, GLXREQUESTHEADER);
+  if (Verbose > 1)
+    PrintField(SBf, 0, 4, CARD32, "sequence number");
+}
+
+void
+GLXRender (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXRenderLarge (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXCreateContext (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXDestroyContext (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXMakeCurrent (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void GLXMakeCurrentReply (FD fd, const unsigned char *buf)
+{
+  PrintField(RBf, 0, 1, REPLY, REPLYHEADER);
+  PrintField(RBf, 1, 1, GLXREPLY, GLXREPLYHEADER);
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  printfield(buf, 4, 4, DVALUE4(0), "reply length");
+}
+
+void
+GLXIsDirect (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXIsDirectReply (FD fd, const unsigned char *buf)
+{
+  PrintField(RBf, 0, 1, REPLY, REPLYHEADER);
+  PrintField(RBf, 1, 1, GLXREPLY, GLXREPLYHEADER);
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  printfield(buf, 4, 4, DVALUE4(0), "reply length");
+}
+
+void
+GLXQueryVersion (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXQueryVersionReply (FD fd, const unsigned char *buf)
+{
+  PrintField(RBf, 0, 1, REPLY, REPLYHEADER);
+  PrintField(RBf, 1, 1, GLXREPLY, GLXREPLYHEADER);
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  printfield(buf, 4, 4, DVALUE4(0), "reply length");
+}
+
+void
+GLXWaitGL (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXWaitX (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXCopyContext (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXSwapBuffers (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXUseXFont (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXCreateGLXPixmap (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXGetVisualConfigs (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+ GLXGetVisualConfigsReply (FD fd, const unsigned char *buf)
+{
+  PrintField(RBf, 0, 1, REPLY, REPLYHEADER);
+  PrintField(RBf, 1, 1, GLXREPLY, GLXREPLYHEADER);
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  printfield(buf, 4, 4, DVALUE4(0), "reply length");
+}
+
+void
+GLXDestroyGLXPixmap (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXVendorPrivate (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXVendorPrivateWithReply (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXVendorPrivateWithReplyReply (FD fd, const unsigned char *buf)
+{
+  PrintField(RBf, 0, 1, REPLY, REPLYHEADER);
+  PrintField(RBf, 1, 1, GLXREPLY, GLXREPLYHEADER);
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  printfield(buf, 4, 4, DVALUE4(0), "reply length");
+}
+
+void
+GLXQueryExtensionsString (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+ GLXQueryExtensionsStringReply (FD fd, const unsigned char *buf)
+{
+  PrintField(RBf, 0, 1, REPLY, REPLYHEADER);
+  PrintField(RBf, 1, 1, GLXREPLY, GLXREPLYHEADER);
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  printfield(buf, 4, 4, DVALUE4(0), "reply length");
+}
+
+void
+GLXQueryServerString (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+ GLXQueryServerStringReply (FD fd, const unsigned char *buf)
+{
+  PrintField(RBf, 0, 1, REPLY, REPLYHEADER);
+  PrintField(RBf, 1, 1, GLXREPLY, GLXREPLYHEADER);
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  printfield(buf, 4, 4, DVALUE4(0), "reply length");
+}
+
+void
+GLXClientInfo (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXGetFBConfigs (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+ GLXGetFBConfigsReply (FD fd, const unsigned char *buf)
+{
+  PrintField(RBf, 0, 1, REPLY, REPLYHEADER);
+  PrintField(RBf, 1, 1, GLXREPLY, GLXREPLYHEADER);
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  printfield(buf, 4, 4, DVALUE4(0), "reply length");
+}
+
+void
+GLXCreatePixmap (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXDestroyPixmap (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXCreateNewContext (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXQueryContext (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+ GLXQueryContextReply (FD fd, const unsigned char *buf)
+{
+  PrintField(RBf, 0, 1, REPLY, REPLYHEADER);
+  PrintField(RBf, 1, 1, GLXREPLY, GLXREPLYHEADER);
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  printfield(buf, 4, 4, DVALUE4(0), "reply length");
+}
+
+void
+GLXMakeContextCurrent (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+ GLXMakeContextCurrentReply (FD fd, const unsigned char *buf)
+{
+  PrintField(RBf, 0, 1, REPLY, REPLYHEADER);
+  PrintField(RBf, 1, 1, GLXREPLY, GLXREPLYHEADER);
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  printfield(buf, 4, 4, DVALUE4(0), "reply length");
+}
+
+void
+GLXCreatePbuffer (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXDestroyPbuffer (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXGetDrawableAttributes (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+ GLXGetDrawableAttributesReply (FD fd, const unsigned char *buf)
+{
+  PrintField(RBf, 0, 1, REPLY, REPLYHEADER);
+  PrintField(RBf, 1, 1, GLXREPLY, GLXREPLYHEADER);
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  printfield(buf, 4, 4, DVALUE4(0), "reply length");
+}
+
+void
+GLXChangeDrawableAttributes (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXCreateWindow (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXDestroyWindow (FD fd, const unsigned char *buf)
+{
+  GlxRequestHeader (fd, buf);
+  if (Verbose < 1)
+    return;
+
+  printreqlen(buf, fd, CONST2(2));
+}
+
+void
+GLXBadContextError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXBadContextStateError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXBadDrawableError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXBadPixmapError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXBadContextTagError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXBadCurrentWindowError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXBadRenderRequestError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXBadLargeRequestError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXUnsupportedPrivateRequestError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXBadFBConfigError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXBadPbufferError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXBadCurrentDrawableError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
+
+void
+GLXBadWindowError (FD fd, const unsigned char *buf)
+{
+  PrintField(buf, 1, 1, ERROR, ERRORHEADER) /* Request */ ;
+  if (Verbose < 1)
+    return;
+  printfield(buf, 2, 2, CARD16, "sequence number");
+  PrintField(buf, 4, 4, PICTFORMAT, "format");
+  PrintField(buf, 8, 2, CARD16, "minor opcode");
+  PrintField(buf, 10, 1, CARD8, "major opcode");
+}
diff --git a/x11.h b/x11.h
index e80182f..26fd871 100644
--- a/x11.h
+++ b/x11.h
@@ -256,6 +256,11 @@
 
 #define EXTENSION	159
 
+#define GLXREQUEST	160
+#define GLXREPLY	161
+#define GLXEVENT	162
+#define GLXERROR	163
+
 #define MaxTypes 256
 
 extern char ScopeEnabled;
-- 
1.7.2



Index: xscope.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xscope/devel/xscope.spec,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- xscope.spec	1 Oct 2009 12:55:36 -0000	1.3
+++ xscope.spec	24 Jul 2010 10:38:17 -0000	1.4
@@ -1,6 +1,6 @@
 Name:           xscope
 Version:        1.2
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        X Window Protocol Viewer
 
 Group:          User Interface/X
@@ -10,6 +10,10 @@ Source0:        ftp://ftp.freedesktop.or
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  xorg-x11-xtrans-devel, xorg-x11-proto-devel
+# for autoreconf for the GLX patch
+BuildRequires:  automake autoconf xorg-x11-util-macros
+
+Patch0:         0001-Add-basic-support-for-GLX-extension.patch
 
 %description
 xscope sits in-between an X11 client and an X11 server and prints the contents
@@ -20,6 +24,9 @@ servers and clients.
 
 %prep
 %setup -q
+%patch0 -p1 -b .glx
+# for patch0
+autoreconf 
 
 %build
 %configure
@@ -43,6 +50,9 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
+* Sat Jul 24 2010 Yanko Kaneti <yaneti at declera.com> 1.2-2
+- Include an upstream patch for basic GLX support
+
 * Thu Oct  1 2009 Yanko Kaneti <yaneti at declera.com> 1.2-1
 - New upstream release. Drop patches.
 



More information about the scm-commits mailing list