projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd_jue-3.2.5
[rocksndiamonds.git]
/
src
/
libgame
/
x11.c
diff --git
a/src/libgame/x11.c
b/src/libgame/x11.c
index 12f4e1e4268cabf8e8b39591d442bc67905d3f99..fe022c5bf3f8ddb1f50d9d8c7b776c4f7694894b 100644
(file)
--- a/
src/libgame/x11.c
+++ b/
src/libgame/x11.c
@@
-22,6
+22,13
@@
static void X11InitDisplay();
static DrawWindow *X11InitWindow();
static void X11InitDisplay();
static DrawWindow *X11InitWindow();
+static int X11DebugErrorHandler(Display *display, XErrorEvent *event)
+{
+ int x = 0;
+
+ return 1 / x; /* !!! crash program to give backtrace in gdb !!! */
+}
+
void X11InitVideoDisplay(void)
{
/* initialize X11 video */
void X11InitVideoDisplay(void)
{
/* initialize X11 video */
@@
-55,6
+62,14
@@
static void X11InitDisplay()
Error(ERR_EXIT, "cannot connect to X server %s",
XDisplayName(options.display_name));
Error(ERR_EXIT, "cannot connect to X server %s",
XDisplayName(options.display_name));
+ if (options.debug_x11_sync)
+ {
+ Error(ERR_WARN, "running in X11 synchronous mode (debug only)");
+
+ XSynchronize(display, True);
+ XSetErrorHandler(X11DebugErrorHandler);
+ }
+
screen = DefaultScreen(display);
visual = DefaultVisual(display, screen);
depth = DefaultDepth(display, screen);
screen = DefaultScreen(display);
visual = DefaultVisual(display, screen);
depth = DefaultDepth(display, screen);