- added thread-safety protection to XListPixmapFormats
- moved pixmap / image format matching ERRs to WARNs
diff --git a/dlls/ddraw/ddraw/x11.c b/dlls/ddraw/ddraw/x11.c
index 92a3e84..a6c5d2a 100644
--- a/dlls/ddraw/ddraw/x11.c
+++ b/dlls/ddraw/ddraw/x11.c
@@ -49,7 +49,7 @@
int index = -2;
vi = TSXGetVisualInfo(display, VisualNoMask, &vt, &nvisuals);
- pf = XListPixmapFormats(display, &npixmap);
+ pf = TSXListPixmapFormats(display, &npixmap);
for (i = 0; i < npixmap; i++) {
if (pf[i].depth == depth) {
@@ -83,7 +83,7 @@
goto clean_up_and_exit;
}
}
- ERR("No visual corresponding to pixmap format !\n");
+ WARN("No visual corresponding to pixmap format !\n");
}
}
@@ -694,7 +694,7 @@
maxHeight = MONITOR_GetHeight(&MONITOR_PrimaryMonitor);
vi = TSXGetVisualInfo(display, VisualNoMask, &vt, &nvisuals);
- pf = XListPixmapFormats(display, &npixmap);
+ pf = TSXListPixmapFormats(display, &npixmap);
i = 0;
emu = 0;
@@ -734,8 +734,8 @@
has_mode[mode_index] = 1;
} else {
- /* All the 'true color' depths (15, 16 and 24)
- First, find the corresponding visual to extract the bit masks */
+ /* All the 'true color' depths (15, 16 and 24)
+ First, find the corresponding visual to extract the bit masks */
for (j = 0; j < nvisuals; j++) {
if (vi[j].depth == pf[i].depth) {
ddsfd.ddsCaps.dwCaps = 0;
@@ -756,7 +756,7 @@
}
}
if (j == nvisuals)
- ERR("Did not find visual corresponding the the pixmap format !\n");
+ WARN("Did not find visual corresponding the the pixmap format !\n");
}
}
i++;
@@ -787,7 +787,7 @@
ddsfd.ddpfPixelFormat.u1.dwRBitMask = 0;
ddsfd.ddpfPixelFormat.u2.dwGBitMask = 0;
ddsfd.ddpfPixelFormat.u3.dwBBitMask = 0;
- } else {
+ } else {
ddsfd.ddpfPixelFormat.dwFlags = DDPF_RGB;
ddsfd.ddpfPixelFormat.u.dwRGBBitCount = ModeEmulations[c].dest.bpp;
ddsfd.ddpfPixelFormat.u1.dwRBitMask = ModeEmulations[c].dest.rmask;
@@ -799,7 +799,7 @@
}
if (send_mode == 0)
- ERR("No visual corresponding to pixmap format !\n");
+ WARN("No visual corresponding to pixmap format !\n");
}
}
}
diff --git a/include/ts_xlib.h b/include/ts_xlib.h
index a520830..72d300b 100644
--- a/include/ts_xlib.h
+++ b/include/ts_xlib.h
@@ -38,6 +38,7 @@
extern KeySym * TSXGetKeyboardMapping(Display*, unsigned int, int, int*);
extern char * TSXResourceManagerString(Display*);
extern int TSXInitThreads(void);
+extern XPixmapFormatValues * TSXListPixmapFormats(Display*, int*);
extern int * TSXListDepths(Display*, int, int*);
extern int TSXReconfigureWMWindow(Display*, Window, int, unsigned int, XWindowChanges*);
extern int TSXSetWMProtocols(Display*, Window, Atom*, int);
diff --git a/tsx11/X11_calls b/tsx11/X11_calls
index 1a7a121..5a558ca 100644
--- a/tsx11/X11_calls
+++ b/tsx11/X11_calls
@@ -91,6 +91,7 @@
XKeysymToString
XListDepths
XListFonts
+XListPixmapFormats
XLoadQueryFont
XLookupKeysym
XLookupString
diff --git a/tsx11/ts_xlib.c b/tsx11/ts_xlib.c
index c54e366..a5763f3 100644
--- a/tsx11/ts_xlib.c
+++ b/tsx11/ts_xlib.c
@@ -277,6 +277,17 @@
return r;
}
+XPixmapFormatValues * TSXListPixmapFormats(Display* a0, int* a1)
+{
+ XPixmapFormatValues * r;
+ TRACE("Call XListPixmapFormats\n");
+ EnterCriticalSection( &X11DRV_CritSection );
+ r = XListPixmapFormats(a0, a1);
+ LeaveCriticalSection( &X11DRV_CritSection );
+ TRACE("Ret XListPixmapFormats\n");
+ return r;
+}
+
int * TSXListDepths(Display* a0, int a1, int* a2)
{
int * r;