From ec69bcb15ebc389bb3077d2c2b6fb33d8b8004a4 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Thu, 30 Jul 2015 18:41:46 -0700 Subject: [PATCH] libobs-opengl: Add X11 error handler (for logging) --- libobs-opengl/gl-x11.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libobs-opengl/gl-x11.c b/libobs-opengl/gl-x11.c index 00b794508..0f840dab0 100644 --- a/libobs-opengl/gl-x11.c +++ b/libobs-opengl/gl-x11.c @@ -263,6 +263,15 @@ extern void gl_windowinfo_destroy(struct gl_windowinfo *info) bfree(info); } +static int x_error_handler(Display *display, XErrorEvent *error) +{ + char str[512]; + XGetErrorText(display, error->error_code, str, sizeof(str)); + + blog(LOG_ERROR, "X Error: %s", str); + return 0; +} + extern struct gl_platform *gl_platform_create(gs_device_t *device, const struct gs_init_data *info) { @@ -287,6 +296,7 @@ extern struct gl_platform *gl_platform_create(gs_device_t *device, } XSetEventQueueOwner(display, XCBOwnsEventQueue); + XSetErrorHandler(x_error_handler); /* We assume later that cur_swap is already set. */ device->cur_swap = &plat->swap;