summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2011-12-12 09:54:25 -0800
committerIan Romanick <[email protected]>2011-12-23 08:40:30 -0800
commitfba400072fb64dd326d35bb12a27ca17f9e03ada (patch)
tree3f85717b80b541e8b2f57a976226a422b0a4380f
parentefa93ae449b6dc8437ee7240a8ea050a0d1699e0 (diff)
glx: Deliver an xlib style error to the application from an XCB error
Signed-off-by: Ian Romanick <[email protected]>
-rw-r--r--src/glx/glx_error.c19
-rw-r--r--src/glx/glx_error.h4
2 files changed, 23 insertions, 0 deletions
diff --git a/src/glx/glx_error.c b/src/glx/glx_error.c
index 0855c35951a..b3860db2e37 100644
--- a/src/glx/glx_error.c
+++ b/src/glx/glx_error.c
@@ -65,3 +65,22 @@ __glXSendError(Display * dpy, int_fast8_t errorCode, uint_fast32_t resourceID,
UnlockDisplay(dpy);
}
+
+void
+__glXSendErrorForXcb(Display * dpy, const xcb_generic_error_t *err)
+{
+ xError error;
+
+ LockDisplay(dpy);
+
+ error.type = X_Error;
+ error.errorCode = err->error_code;
+ error.sequenceNumber = err->sequence;
+ error.resourceID = err->resource_id;
+ error.minorCode = err->minor_code;
+ error.majorCode = err->major_code;
+
+ _XError(dpy, &error);
+
+ UnlockDisplay(dpy);
+}
diff --git a/src/glx/glx_error.h b/src/glx/glx_error.h
index 19be38b4425..eaf6b814c5e 100644
--- a/src/glx/glx_error.h
+++ b/src/glx/glx_error.h
@@ -29,7 +29,11 @@
#include <stdbool.h>
#include <stdint.h>
#include <X11/Xlib.h>
+#include <xcb/xcb.h>
void __glXSendError(Display * dpy, int_fast8_t errorCode,
uint_fast32_t resourceID, uint_fast16_t minorCode,
bool coreX11error);
+
+_X_HIDDEN void __glXSendErrorForXcb(Display * dpy,
+ const xcb_generic_error_t *err);