xscope/0001-Add-basic-support-for-GLX-extension.patch
2010-07-24 10:38:17 +00:00

1054 lines
31 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 6fa3e0c937885e0302e8d7258cc94371203a906c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@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@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@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@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