Commit 00d5d77d authored by Lionel Ulmer's avatar Lionel Ulmer Committed by Alexandre Julliard

- added thread-safety protection to XListPixmapFormats

- moved pixmap / image format matching ERRs to WARNs
parent f1a25321
...@@ -49,7 +49,7 @@ int _common_depth_to_pixelformat( ...@@ -49,7 +49,7 @@ int _common_depth_to_pixelformat(
int index = -2; int index = -2;
vi = TSXGetVisualInfo(display, VisualNoMask, &vt, &nvisuals); vi = TSXGetVisualInfo(display, VisualNoMask, &vt, &nvisuals);
pf = XListPixmapFormats(display, &npixmap); pf = TSXListPixmapFormats(display, &npixmap);
for (i = 0; i < npixmap; i++) { for (i = 0; i < npixmap; i++) {
if (pf[i].depth == depth) { if (pf[i].depth == depth) {
...@@ -83,7 +83,7 @@ int _common_depth_to_pixelformat( ...@@ -83,7 +83,7 @@ int _common_depth_to_pixelformat(
goto clean_up_and_exit; 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 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes( ...@@ -694,7 +694,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes(
maxHeight = MONITOR_GetHeight(&MONITOR_PrimaryMonitor); maxHeight = MONITOR_GetHeight(&MONITOR_PrimaryMonitor);
vi = TSXGetVisualInfo(display, VisualNoMask, &vt, &nvisuals); vi = TSXGetVisualInfo(display, VisualNoMask, &vt, &nvisuals);
pf = XListPixmapFormats(display, &npixmap); pf = TSXListPixmapFormats(display, &npixmap);
i = 0; i = 0;
emu = 0; emu = 0;
...@@ -734,8 +734,8 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes( ...@@ -734,8 +734,8 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes(
has_mode[mode_index] = 1; has_mode[mode_index] = 1;
} else { } else {
/* All the 'true color' depths (15, 16 and 24) /* All the 'true color' depths (15, 16 and 24)
First, find the corresponding visual to extract the bit masks */ First, find the corresponding visual to extract the bit masks */
for (j = 0; j < nvisuals; j++) { for (j = 0; j < nvisuals; j++) {
if (vi[j].depth == pf[i].depth) { if (vi[j].depth == pf[i].depth) {
ddsfd.ddsCaps.dwCaps = 0; ddsfd.ddsCaps.dwCaps = 0;
...@@ -756,7 +756,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes( ...@@ -756,7 +756,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes(
} }
} }
if (j == nvisuals) 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++; i++;
...@@ -787,7 +787,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes( ...@@ -787,7 +787,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes(
ddsfd.ddpfPixelFormat.u1.dwRBitMask = 0; ddsfd.ddpfPixelFormat.u1.dwRBitMask = 0;
ddsfd.ddpfPixelFormat.u2.dwGBitMask = 0; ddsfd.ddpfPixelFormat.u2.dwGBitMask = 0;
ddsfd.ddpfPixelFormat.u3.dwBBitMask = 0; ddsfd.ddpfPixelFormat.u3.dwBBitMask = 0;
} else { } else {
ddsfd.ddpfPixelFormat.dwFlags = DDPF_RGB; ddsfd.ddpfPixelFormat.dwFlags = DDPF_RGB;
ddsfd.ddpfPixelFormat.u.dwRGBBitCount = ModeEmulations[c].dest.bpp; ddsfd.ddpfPixelFormat.u.dwRGBBitCount = ModeEmulations[c].dest.bpp;
ddsfd.ddpfPixelFormat.u1.dwRBitMask = ModeEmulations[c].dest.rmask; ddsfd.ddpfPixelFormat.u1.dwRBitMask = ModeEmulations[c].dest.rmask;
...@@ -799,7 +799,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes( ...@@ -799,7 +799,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_EnumDisplayModes(
} }
if (send_mode == 0) if (send_mode == 0)
ERR("No visual corresponding to pixmap format !\n"); WARN("No visual corresponding to pixmap format !\n");
} }
} }
} }
......
...@@ -38,6 +38,7 @@ extern KeySym TSXLookupKeysym(XKeyEvent*, int); ...@@ -38,6 +38,7 @@ extern KeySym TSXLookupKeysym(XKeyEvent*, int);
extern KeySym * TSXGetKeyboardMapping(Display*, unsigned int, int, int*); extern KeySym * TSXGetKeyboardMapping(Display*, unsigned int, int, int*);
extern char * TSXResourceManagerString(Display*); extern char * TSXResourceManagerString(Display*);
extern int TSXInitThreads(void); extern int TSXInitThreads(void);
extern XPixmapFormatValues * TSXListPixmapFormats(Display*, int*);
extern int * TSXListDepths(Display*, int, int*); extern int * TSXListDepths(Display*, int, int*);
extern int TSXReconfigureWMWindow(Display*, Window, int, unsigned int, XWindowChanges*); extern int TSXReconfigureWMWindow(Display*, Window, int, unsigned int, XWindowChanges*);
extern int TSXSetWMProtocols(Display*, Window, Atom*, int); extern int TSXSetWMProtocols(Display*, Window, Atom*, int);
......
...@@ -91,6 +91,7 @@ XKeysymToKeycode ...@@ -91,6 +91,7 @@ XKeysymToKeycode
XKeysymToString XKeysymToString
XListDepths XListDepths
XListFonts XListFonts
XListPixmapFormats
XLoadQueryFont XLoadQueryFont
XLookupKeysym XLookupKeysym
XLookupString XLookupString
......
...@@ -277,6 +277,17 @@ int TSXInitThreads(void) ...@@ -277,6 +277,17 @@ int TSXInitThreads(void)
return r; 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 * TSXListDepths(Display* a0, int a1, int* a2)
{ {
int * r; int * r;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment