From 8a7fbf542dbc9a003f3b9ef9d0a13708607af4f1 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 21 Nov 2003 05:41:56 +0000 Subject: [PATCH] Removed more TSX functions. --- dlls/x11drv/X11_calls | 21 ----- dlls/x11drv/ts_xlib.c | 189 ------------------------------------- dlls/x11drv/ts_xlib.h | 21 ----- dlls/x11drv/xrender.c | 25 +++-- graphics/x11drv/bitmap.c | 12 ++- graphics/x11drv/brush.c | 6 +- graphics/x11drv/clipping.c | 10 +- graphics/x11drv/codepage.c | 33 +++++-- graphics/x11drv/dib.c | 4 +- graphics/x11drv/graphics.c | 100 ++++++++++++-------- graphics/x11drv/palette.c | 8 +- graphics/x11drv/text.c | 54 ++++++----- 12 files changed, 156 insertions(+), 327 deletions(-) diff --git a/dlls/x11drv/X11_calls b/dlls/x11drv/X11_calls index ea2a42d5a9b..3501e483763 100644 --- a/dlls/x11drv/X11_calls +++ b/dlls/x11drv/X11_calls @@ -4,40 +4,19 @@ # To add a new call, put it on this list and run tools/make_X11wrappers. # Also read the comments at the top of tools/make_X11wrappers. # -XChangeGC XChangeProperty -XDrawArc -XDrawLine -XDrawLines -XDrawString16 -XDrawText16 -XFillArc -XFillRectangle XFree XFreeFont -XFreePixmap XGetAtomName XGetFontProperty -XGetGeometry XGetSelectionOwner XGetWindowProperty -XInternAtom XKeycodeToKeysym XKeysymToKeycode XKeysymToString XMapWindow XQueryPointer XQueryTree -XSetArcMode -XSetClipRectangles -XSetDashes -XSetForeground -XSetFunction -XSetLineAttributes XSetSelectionOwner -XSetSubwindowMode -XStoreColor XSync -XTextExtents16 -XTextWidth16 XUnmapWindow diff --git a/dlls/x11drv/ts_xlib.c b/dlls/x11drv/ts_xlib.c index 4ba659ceb82..fc1270fd9e2 100644 --- a/dlls/x11drv/ts_xlib.c +++ b/dlls/x11drv/ts_xlib.c @@ -31,15 +31,6 @@ char * TSXKeysymToString(KeySym a0) return r; } -Atom TSXInternAtom(Display* a0, const char* a1, int a2) -{ - Atom r; - wine_tsx11_lock(); - r = XInternAtom(a0, a1, a2); - wine_tsx11_unlock(); - return r; -} - Window TSXGetSelectionOwner(Display* a0, Atom a1) { Window r; @@ -58,15 +49,6 @@ KeySym TSXKeycodeToKeysym(Display* a0, unsigned int a1, int a2) return r; } -int TSXChangeGC(Display* a0, GC a1, unsigned long a2, XGCValues* a3) -{ - int r; - wine_tsx11_lock(); - r = XChangeGC(a0, a1, a2, a3); - wine_tsx11_unlock(); - return r; -} - int TSXChangeProperty(Display* a0, Window a1, Atom a2, Atom a3, int a4, int a5, const unsigned char* a6, int a7) { int r; @@ -76,69 +58,6 @@ int TSXChangeProperty(Display* a0, Window a1, Atom a2, Atom a3, int a4, int a5, return r; } -int TSXDrawArc(Display* a0, Drawable a1, GC a2, int a3, int a4, unsigned int a5, unsigned int a6, int a7, int a8) -{ - int r; - wine_tsx11_lock(); - r = XDrawArc(a0, a1, a2, a3, a4, a5, a6, a7, a8); - wine_tsx11_unlock(); - return r; -} - -int TSXDrawLine(Display* a0, Drawable a1, GC a2, int a3, int a4, int a5, int a6) -{ - int r; - wine_tsx11_lock(); - r = XDrawLine(a0, a1, a2, a3, a4, a5, a6); - wine_tsx11_unlock(); - return r; -} - -int TSXDrawLines(Display* a0, Drawable a1, GC a2, XPoint* a3, int a4, int a5) -{ - int r; - wine_tsx11_lock(); - r = XDrawLines(a0, a1, a2, a3, a4, a5); - wine_tsx11_unlock(); - return r; -} - -int TSXDrawString16(Display* a0, Drawable a1, GC a2, int a3, int a4, const XChar2b* a5, int a6) -{ - int r; - wine_tsx11_lock(); - r = XDrawString16(a0, a1, a2, a3, a4, a5, a6); - wine_tsx11_unlock(); - return r; -} - -int TSXDrawText16(Display* a0, Drawable a1, GC a2, int a3, int a4, XTextItem16* a5, int a6) -{ - int r; - wine_tsx11_lock(); - r = XDrawText16(a0, a1, a2, a3, a4, a5, a6); - wine_tsx11_unlock(); - return r; -} - -int TSXFillArc(Display* a0, Drawable a1, GC a2, int a3, int a4, unsigned int a5, unsigned int a6, int a7, int a8) -{ - int r; - wine_tsx11_lock(); - r = XFillArc(a0, a1, a2, a3, a4, a5, a6, a7, a8); - wine_tsx11_unlock(); - return r; -} - -int TSXFillRectangle(Display* a0, Drawable a1, GC a2, int a3, int a4, unsigned int a5, unsigned int a6) -{ - int r; - wine_tsx11_lock(); - r = XFillRectangle(a0, a1, a2, a3, a4, a5, a6); - wine_tsx11_unlock(); - return r; -} - int TSXFree(void* a0) { int r; @@ -157,15 +76,6 @@ int TSXFreeFont(Display* a0, XFontStruct* a1) return r; } -int TSXFreePixmap(Display* a0, Pixmap a1) -{ - int r; - wine_tsx11_lock(); - r = XFreePixmap(a0, a1); - wine_tsx11_unlock(); - return r; -} - int TSXGetFontProperty(XFontStruct* a0, Atom a1, unsigned long* a2) { int r; @@ -175,15 +85,6 @@ int TSXGetFontProperty(XFontStruct* a0, Atom a1, unsigned long* a2) return r; } -int TSXGetGeometry(Display* a0, Drawable a1, Window* a2, int* a3, int* a4, unsigned int* a5, unsigned int* a6, unsigned int* a7, unsigned int* a8) -{ - int r; - wine_tsx11_lock(); - r = XGetGeometry(a0, a1, a2, a3, a4, a5, a6, a7, a8); - wine_tsx11_unlock(); - return r; -} - int TSXGetWindowProperty(Display* a0, Window a1, Atom a2, long a3, long a4, int a5, Atom a6, Atom* a7, int* a8, unsigned long* a9, unsigned long* a10, unsigned char** a11) { int r; @@ -229,60 +130,6 @@ int TSXQueryTree(Display* a0, Window a1, Window* a2, Window* a3, Window** a4, u return r; } -int TSXSetArcMode(Display* a0, GC a1, int a2) -{ - int r; - wine_tsx11_lock(); - r = XSetArcMode(a0, a1, a2); - wine_tsx11_unlock(); - return r; -} - -int TSXSetClipRectangles(Display* a0, GC a1, int a2, int a3, XRectangle* a4, int a5, int a6) -{ - int r; - wine_tsx11_lock(); - r = XSetClipRectangles(a0, a1, a2, a3, a4, a5, a6); - wine_tsx11_unlock(); - return r; -} - -int TSXSetDashes(Display* a0, GC a1, int a2, const char* a3, int a4) -{ - int r; - wine_tsx11_lock(); - r = XSetDashes(a0, a1, a2, a3, a4); - wine_tsx11_unlock(); - return r; -} - -int TSXSetForeground(Display* a0, GC a1, unsigned long a2) -{ - int r; - wine_tsx11_lock(); - r = XSetForeground(a0, a1, a2); - wine_tsx11_unlock(); - return r; -} - -int TSXSetFunction(Display* a0, GC a1, int a2) -{ - int r; - wine_tsx11_lock(); - r = XSetFunction(a0, a1, a2); - wine_tsx11_unlock(); - return r; -} - -int TSXSetLineAttributes(Display* a0, GC a1, unsigned int a2, int a3, int a4, int a5) -{ - int r; - wine_tsx11_lock(); - r = XSetLineAttributes(a0, a1, a2, a3, a4, a5); - wine_tsx11_unlock(); - return r; -} - int TSXSetSelectionOwner(Display* a0, Atom a1, Window a2, Time a3) { int r; @@ -292,24 +139,6 @@ int TSXSetSelectionOwner(Display* a0, Atom a1, Window a2, Time a3) return r; } -int TSXSetSubwindowMode(Display* a0, GC a1, int a2) -{ - int r; - wine_tsx11_lock(); - r = XSetSubwindowMode(a0, a1, a2); - wine_tsx11_unlock(); - return r; -} - -int TSXStoreColor(Display* a0, Colormap a1, XColor* a2) -{ - int r; - wine_tsx11_lock(); - r = XStoreColor(a0, a1, a2); - wine_tsx11_unlock(); - return r; -} - int TSXSync(Display* a0, int a1) { int r; @@ -319,24 +148,6 @@ int TSXSync(Display* a0, int a1) return r; } -int TSXTextExtents16(XFontStruct* a0, const XChar2b* a1, int a2, int* a3, int* a4, int* a5, XCharStruct* a6) -{ - int r; - wine_tsx11_lock(); - r = XTextExtents16(a0, a1, a2, a3, a4, a5, a6); - wine_tsx11_unlock(); - return r; -} - -int TSXTextWidth16(XFontStruct* a0, const XChar2b* a1, int a2) -{ - int r; - wine_tsx11_lock(); - r = XTextWidth16(a0, a1, a2); - wine_tsx11_unlock(); - return r; -} - int TSXUnmapWindow(Display* a0, Window a1) { int r; diff --git a/dlls/x11drv/ts_xlib.h b/dlls/x11drv/ts_xlib.h index dc5e64310e1..6fefde583b9 100644 --- a/dlls/x11drv/ts_xlib.h +++ b/dlls/x11drv/ts_xlib.h @@ -21,40 +21,19 @@ extern void wine_tsx11_unlock(void); extern char * TSXGetAtomName(Display*, Atom); extern char * TSXKeysymToString(KeySym); -extern Atom TSXInternAtom(Display*, const char*, int); extern Window TSXGetSelectionOwner(Display*, Atom); extern KeySym TSXKeycodeToKeysym(Display*, unsigned int, int); -extern int TSXChangeGC(Display*, GC, unsigned long, XGCValues*); extern int TSXChangeProperty(Display*, Window, Atom, Atom, int, int, const unsigned char*, int); -extern int TSXDrawArc(Display*, Drawable, GC, int, int, unsigned int, unsigned int, int, int); -extern int TSXDrawLine(Display*, Drawable, GC, int, int, int, int); -extern int TSXDrawLines(Display*, Drawable, GC, XPoint*, int, int); -extern int TSXDrawString16(Display*, Drawable, GC, int, int, const XChar2b*, int); -extern int TSXDrawText16(Display*, Drawable, GC, int, int, XTextItem16*, int); -extern int TSXFillArc(Display*, Drawable, GC, int, int, unsigned int, unsigned int, int, int); -extern int TSXFillRectangle(Display*, Drawable, GC, int, int, unsigned int, unsigned int); extern int TSXFree(void*); extern int TSXFreeFont(Display*, XFontStruct*); -extern int TSXFreePixmap(Display*, Pixmap); extern int TSXGetFontProperty(XFontStruct*, Atom, unsigned long*); -extern int TSXGetGeometry(Display*, Drawable, Window*, int*, int*, unsigned int*, unsigned int*, unsigned int*, unsigned int*); extern int TSXGetWindowProperty(Display*, Window, Atom, long, long, int, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**); extern KeyCode TSXKeysymToKeycode(Display*, KeySym); extern int TSXMapWindow(Display*, Window); extern int TSXQueryPointer(Display*, Window, Window*, Window*, int*, int*, int*, int*, unsigned int*); extern int TSXQueryTree(Display*, Window, Window*, Window*, Window**, unsigned int*); -extern int TSXSetArcMode(Display*, GC, int); -extern int TSXSetClipRectangles(Display*, GC, int, int, XRectangle*, int, int); -extern int TSXSetDashes(Display*, GC, int, const char*, int); -extern int TSXSetForeground(Display*, GC, unsigned long); -extern int TSXSetFunction(Display*, GC, int); -extern int TSXSetLineAttributes(Display*, GC, unsigned int, int, int, int); extern int TSXSetSelectionOwner(Display*, Atom, Window, Time); -extern int TSXSetSubwindowMode(Display*, GC, int); -extern int TSXStoreColor(Display*, Colormap, XColor*); extern int TSXSync(Display*, int); -extern int TSXTextExtents16(XFontStruct*, const XChar2b*, int, int*, int*, int*, XCharStruct*); -extern int TSXTextWidth16(XFontStruct*, const XChar2b*, int); extern int TSXUnmapWindow(Display*, Window); #endif /* defined(HAVE_X11_XLIB_H) */ diff --git a/dlls/x11drv/xrender.c b/dlls/x11drv/xrender.c index e7fa93a2ed1..9705e564040 100644 --- a/dlls/x11drv/xrender.c +++ b/dlls/x11drv/xrender.c @@ -1004,8 +1004,9 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag xgcval.function = GXcopy; xgcval.background = physDev->backgroundPixel; xgcval.fill_style = FillSolid; - TSXChangeGC( gdi_display, physDev->gc, - GCFunction | GCBackground | GCFillStyle, &xgcval ); + wine_tsx11_lock(); + XChangeGC( gdi_display, physDev->gc, GCFunction | GCBackground | GCFillStyle, &xgcval ); + wine_tsx11_unlock(); X11DRV_LockDIBSection( physDev, DIB_Status_GdiMod, FALSE ); @@ -1023,10 +1024,12 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag } if(flags & ETO_OPAQUE) { - TSXSetForeground( gdi_display, physDev->gc, backgroundPixel ); - TSXFillRectangle( gdi_display, physDev->drawable, physDev->gc, - physDev->org.x + rc.left, physDev->org.y + rc.top, - rc.right - rc.left, rc.bottom - rc.top ); + wine_tsx11_lock(); + XSetForeground( gdi_display, physDev->gc, backgroundPixel ); + XFillRectangle( gdi_display, physDev->drawable, physDev->gc, + physDev->org.x + rc.left, physDev->org.y + rc.top, + rc.right - rc.left, rc.bottom - rc.top ); + wine_tsx11_unlock(); } if(count == 0) { @@ -1159,10 +1162,12 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag if(!((flags & ETO_CLIPPED) && (flags & ETO_OPAQUE))) { if(!(flags & ETO_OPAQUE) || x < rc.left || x + width >= rc.right || y - tm.tmAscent < rc.top || y + tm.tmDescent >= rc.bottom) { - TSXSetForeground( gdi_display, physDev->gc, backgroundPixel ); - TSXFillRectangle( gdi_display, physDev->drawable, physDev->gc, - physDev->org.x + x, physDev->org.y + y - tm.tmAscent, - width, tm.tmAscent + tm.tmDescent ); + wine_tsx11_lock(); + XSetForeground( gdi_display, physDev->gc, backgroundPixel ); + XFillRectangle( gdi_display, physDev->drawable, physDev->gc, + physDev->org.x + x, physDev->org.y + y - tm.tmAscent, + width, tm.tmAscent + tm.tmDescent ); + wine_tsx11_unlock(); } } } diff --git a/graphics/x11drv/bitmap.c b/graphics/x11drv/bitmap.c index 381de6a498e..6ce536273fe 100644 --- a/graphics/x11drv/bitmap.c +++ b/graphics/x11drv/bitmap.c @@ -425,8 +425,10 @@ BOOL X11DRV_DeleteBitmap( HBITMAP hbitmap ) BITMAPOBJ *bmp = (BITMAPOBJ *) GDI_GetObjPtr( hbitmap, BITMAP_MAGIC ); if (bmp) { - if (bmp->physBitmap) TSXFreePixmap( gdi_display, (Pixmap)bmp->physBitmap ); + wine_tsx11_lock(); + if (bmp->physBitmap) XFreePixmap( gdi_display, (Pixmap)bmp->physBitmap ); bmp->physBitmap = NULL; + wine_tsx11_unlock(); if (bmp->dib) X11DRV_DIB_DeleteDIBSection( bmp ); GDI_ReleaseObj( hbitmap ); } @@ -450,9 +452,11 @@ HBITMAP X11DRV_BITMAP_CreateBitmapHeaderFromPixmap(Pixmap pixmap) unsigned int depth, width, height; /* Get the Pixmap dimensions and bit depth */ - if ( 0 == TSXGetGeometry(gdi_display, pixmap, &root, &x, &y, &width, &height, - &border_width, &depth) ) - goto END; + wine_tsx11_lock(); + if (!XGetGeometry(gdi_display, pixmap, &root, &x, &y, &width, &height, + &border_width, &depth)) depth = 0; + wine_tsx11_unlock(); + if (!depth) goto END; TRACE("\tPixmap properties: width=%d, height=%d, depth=%d\n", width, height, depth); diff --git a/graphics/x11drv/brush.c b/graphics/x11drv/brush.c index bda7fe8c6fb..f8ef09d5eec 100644 --- a/graphics/x11drv/brush.c +++ b/graphics/x11drv/brush.c @@ -235,8 +235,10 @@ HBRUSH X11DRV_SelectBrush( X11DRV_PDEVICE *physDev, HBRUSH hbrush ) if (physDev->brush.pixmap) { - TSXFreePixmap( gdi_display, physDev->brush.pixmap ); - physDev->brush.pixmap = 0; + wine_tsx11_lock(); + XFreePixmap( gdi_display, physDev->brush.pixmap ); + wine_tsx11_unlock(); + physDev->brush.pixmap = 0; } physDev->brush.style = logbrush.lbStyle; if (hbrush == GetStockObject( DC_BRUSH )) diff --git a/graphics/x11drv/clipping.c b/graphics/x11drv/clipping.c index 8d81cdb83df..8394c1185f1 100644 --- a/graphics/x11drv/clipping.c +++ b/graphics/x11drv/clipping.c @@ -117,8 +117,10 @@ void X11DRV_SetDeviceClipping( X11DRV_PDEVICE *physDev, HRGN hrgn ) RGNDATA *data; if (!(data = X11DRV_GetRegionData( hrgn, 0 ))) return; - TSXSetClipRectangles( gdi_display, physDev->gc, physDev->org.x, physDev->org.y, - (XRectangle *)data->Buffer, data->rdh.nCount, YXBanded ); + wine_tsx11_lock(); + XSetClipRectangles( gdi_display, physDev->gc, physDev->org.x, physDev->org.y, + (XRectangle *)data->Buffer, data->rdh.nCount, YXBanded ); + wine_tsx11_unlock(); HeapFree( GetProcessHeap(), 0, data ); } @@ -142,7 +144,9 @@ void X11DRV_SetDrawable( HDC hdc, Drawable drawable, int mode, const POINT *org, physDev->org = *org; physDev->drawable = drawable; physDev->drawable_org = *drawable_org; - TSXSetSubwindowMode( gdi_display, physDev->gc, mode ); + wine_tsx11_lock(); + XSetSubwindowMode( gdi_display, physDev->gc, mode ); + wine_tsx11_unlock(); GDI_ReleaseObj( hdc ); } } diff --git a/graphics/x11drv/codepage.c b/graphics/x11drv/codepage.c index f93b1051cfe..90139f8463e 100644 --- a/graphics/x11drv/codepage.c +++ b/graphics/x11drv/codepage.c @@ -409,19 +409,27 @@ static void X11DRV_DrawString_normal( fontObject* pfo, Display* pdisp, Drawable d, GC gc, int x, int y, XChar2b* pstr, int count ) { - TSXDrawString16( pdisp, d, gc, x, y, pstr, count ); + wine_tsx11_lock(); + XDrawString16( pdisp, d, gc, x, y, pstr, count ); + wine_tsx11_unlock(); } static int X11DRV_TextWidth_normal( fontObject* pfo, XChar2b* pstr, int count ) { - return TSXTextWidth16( pfo->fs, pstr, count ); + int ret; + wine_tsx11_lock(); + ret = XTextWidth16( pfo->fs, pstr, count ); + wine_tsx11_unlock(); + return ret; } static void X11DRV_DrawText_normal( fontObject* pfo, Display* pdisp, Drawable d, GC gc, int x, int y, XTextItem16* pitems, int count ) { - TSXDrawText16( pdisp, d, gc, x, y, pitems, count ); + wine_tsx11_lock(); + XDrawText16( pdisp, d, gc, x, y, pitems, count ); + wine_tsx11_unlock(); } static void X11DRV_TextExtents_normal( fontObject* pfo, XChar2b* pstr, int count, @@ -430,7 +438,9 @@ static void X11DRV_TextExtents_normal( fontObject* pfo, XChar2b* pstr, int count { XCharStruct info; - TSXTextExtents16( pfo->fs, pstr, count, pdir, pascent, pdescent, &info ); + wine_tsx11_lock(); + XTextExtents16( pfo->fs, pstr, count, pdir, pascent, pdescent, &info ); + wine_tsx11_unlock(); *pwidth = info.width; } @@ -519,13 +529,14 @@ int X11DRV_TextWidth_dbcs_2fonts( fontObject* pfo, XChar2b* pstr, int count ) if ( pfos[0] == NULL ) pfos[0] = pfo; width = 0; + wine_tsx11_lock(); for ( i = 0; i < count; i++ ) { curfont = ( pstr->byte1 != 0 ) ? 1 : 0; - width += TSXTextWidth16( pfos[curfont]->fs, pstr, 1 ); + width += XTextWidth16( pfos[curfont]->fs, pstr, 1 ); pstr ++; } - + wine_tsx11_unlock(); return width; } @@ -576,7 +587,9 @@ void X11DRV_DrawText_dbcs_2fonts( fontObject* pfo, Display* pdisp, Drawable d, pti->nchars = pstr - pti->chars; pitems ++; pti ++; } - TSXDrawText16( pdisp, d, gc, x, y, ptibuf, pti - ptibuf ); + wine_tsx11_lock(); + XDrawText16( pdisp, d, gc, x, y, ptibuf, pti - ptibuf ); + wine_tsx11_unlock(); HeapFree( GetProcessHeap(), 0, ptibuf ); } @@ -598,18 +611,18 @@ void X11DRV_TextExtents_dbcs_2fonts( fontObject* pfo, XChar2b* pstr, int count, width = 0; *pascent = 0; *pdescent = 0; + wine_tsx11_lock(); for ( i = 0; i < count; i++ ) { curfont = ( pstr->byte1 != 0 ) ? 1 : 0; - TSXTextExtents16( pfos[curfont]->fs, pstr, 1, pdir, - &ascent, &descent, &info ); + XTextExtents16( pfos[curfont]->fs, pstr, 1, pdir, &ascent, &descent, &info ); if ( *pascent < ascent ) *pascent = ascent; if ( *pdescent < descent ) *pdescent = descent; width += info.width; pstr ++; } - + wine_tsx11_unlock(); *pwidth = width; } diff --git a/graphics/x11drv/dib.c b/graphics/x11drv/dib.c index 6bb1082c103..5bcf7e81993 100644 --- a/graphics/x11drv/dib.c +++ b/graphics/x11drv/dib.c @@ -4825,7 +4825,9 @@ INT X11DRV_SetDIBitsToDevice( X11DRV_PDEVICE *physDev, INT xDest, INT yDest, DWO if (!cx || !cy) return lines; X11DRV_SetupGCForText( physDev ); /* To have the correct colors */ - TSXSetFunction(gdi_display, physDev->gc, X11DRV_XROPfunction[dc->ROPmode-1]); + wine_tsx11_lock(); + XSetFunction(gdi_display, physDev->gc, X11DRV_XROPfunction[dc->ROPmode-1]); + wine_tsx11_unlock(); switch (descr.infoBpp) { diff --git a/graphics/x11drv/graphics.c b/graphics/x11drv/graphics.c index a6078414edc..24c9c448f10 100644 --- a/graphics/x11drv/graphics.c +++ b/graphics/x11drv/graphics.c @@ -222,14 +222,6 @@ BOOL X11DRV_SetupGCForPen( X11DRV_PDEVICE *physDev ) } val.background = physDev->backgroundPixel; val.fill_style = FillSolid; - if ((physDev->pen.width <= 1) && - (physDev->pen.style != PS_SOLID) && - (physDev->pen.style != PS_INSIDEFRAME)) - { - TSXSetDashes( gdi_display, physDev->gc, 0, physDev->pen.dashes, physDev->pen.dash_len ); - val.line_style = (GetBkMode(physDev->hdc) == OPAQUE) ? LineDoubleDash : LineOnOffDash; - } - else val.line_style = LineSolid; val.line_width = physDev->pen.width; if (val.line_width <= 1) { val.cap_style = CapNotLast; @@ -259,9 +251,20 @@ BOOL X11DRV_SetupGCForPen( X11DRV_PDEVICE *physDev ) default: val.join_style = JoinRound; } - TSXChangeGC( gdi_display, physDev->gc, + wine_tsx11_lock(); + if ((physDev->pen.width <= 1) && + (physDev->pen.style != PS_SOLID) && + (physDev->pen.style != PS_INSIDEFRAME)) + { + XSetDashes( gdi_display, physDev->gc, 0, physDev->pen.dashes, physDev->pen.dash_len ); + val.line_style = (GetBkMode(physDev->hdc) == OPAQUE) ? LineDoubleDash : LineOnOffDash; + } + else val.line_style = LineSolid; + + XChangeGC( gdi_display, physDev->gc, GCFunction | GCForeground | GCBackground | GCLineWidth | GCLineStyle | GCCapStyle | GCJoinStyle | GCFillStyle, &val ); + wine_tsx11_unlock(); return TRUE; } @@ -286,9 +289,11 @@ BOOL X11DRV_SetupGCForText( X11DRV_PDEVICE *physDev ) val.fill_style = FillSolid; val.font = xfs->fid; - TSXChangeGC( gdi_display, physDev->gc, + wine_tsx11_lock(); + XChangeGC( gdi_display, physDev->gc, GCFunction | GCForeground | GCBackground | GCFillStyle | GCFont, &val ); + wine_tsx11_unlock(); return TRUE; } WARN("Physical font failure\n" ); @@ -312,9 +317,11 @@ X11DRV_LineTo( X11DRV_PDEVICE *physDev, INT x, INT y ) pt[1].y = y; LPtoDP( physDev->hdc, pt, 2 ); - TSXDrawLine(gdi_display, physDev->drawable, physDev->gc, - physDev->org.x + pt[0].x, physDev->org.y + pt[0].y, - physDev->org.x + pt[1].x, physDev->org.y + pt[1].y ); + wine_tsx11_lock(); + XDrawLine(gdi_display, physDev->drawable, physDev->gc, + physDev->org.x + pt[0].x, physDev->org.y + pt[0].y, + physDev->org.x + pt[1].x, physDev->org.y + pt[1].y ); + wine_tsx11_unlock(); /* Update the DIBSection from the pixmap */ X11DRV_UnlockDIBSection(physDev, TRUE); @@ -404,19 +411,23 @@ X11DRV_DrawArc( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, /* Fill arc with brush if Chord() or Pie() */ if ((lines > 0) && X11DRV_SetupGCForBrush( physDev )) { - TSXSetArcMode( gdi_display, physDev->gc, (lines==1) ? ArcChord : ArcPieSlice); - TSXFillArc( gdi_display, physDev->drawable, physDev->gc, - physDev->org.x + rc.left, physDev->org.y + rc.top, - rc.right-rc.left-1, rc.bottom-rc.top-1, istart_angle, idiff_angle ); + wine_tsx11_lock(); + XSetArcMode( gdi_display, physDev->gc, (lines==1) ? ArcChord : ArcPieSlice); + XFillArc( gdi_display, physDev->drawable, physDev->gc, + physDev->org.x + rc.left, physDev->org.y + rc.top, + rc.right-rc.left-1, rc.bottom-rc.top-1, istart_angle, idiff_angle ); + wine_tsx11_unlock(); update = TRUE; } /* Draw arc and lines */ - if (X11DRV_SetupGCForPen( physDev )){ - TSXDrawArc( gdi_display, physDev->drawable, physDev->gc, - physDev->org.x + rc.left, physDev->org.y + rc.top, - rc.right-rc.left-1, rc.bottom-rc.top-1, istart_angle, idiff_angle ); + if (X11DRV_SetupGCForPen( physDev )) + { + wine_tsx11_lock(); + XDrawArc( gdi_display, physDev->drawable, physDev->gc, + physDev->org.x + rc.left, physDev->org.y + rc.top, + rc.right-rc.left-1, rc.bottom-rc.top-1, istart_angle, idiff_angle ); if (lines) { /* use the truncated values */ start_angle=(double)istart_angle*PI/64./180.; @@ -470,9 +481,10 @@ X11DRV_DrawArc( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, } lines++; } - TSXDrawLines( gdi_display, physDev->drawable, physDev->gc, - points, lines+1, CoordModeOrigin ); + XDrawLines( gdi_display, physDev->drawable, physDev->gc, + points, lines+1, CoordModeOrigin ); } + wine_tsx11_unlock(); update = TRUE; } @@ -558,16 +570,20 @@ X11DRV_Ellipse( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, INT botto if (X11DRV_SetupGCForBrush( physDev )) { - TSXFillArc( gdi_display, physDev->drawable, physDev->gc, - physDev->org.x + rc.left, physDev->org.y + rc.top, - rc.right-rc.left-1, rc.bottom-rc.top-1, 0, 360*64 ); + wine_tsx11_lock(); + XFillArc( gdi_display, physDev->drawable, physDev->gc, + physDev->org.x + rc.left, physDev->org.y + rc.top, + rc.right-rc.left-1, rc.bottom-rc.top-1, 0, 360*64 ); + wine_tsx11_unlock(); update = TRUE; } if (X11DRV_SetupGCForPen( physDev )) { - TSXDrawArc( gdi_display, physDev->drawable, physDev->gc, - physDev->org.x + rc.left, physDev->org.y + rc.top, - rc.right-rc.left-1, rc.bottom-rc.top-1, 0, 360*64 ); + wine_tsx11_lock(); + XDrawArc( gdi_display, physDev->drawable, physDev->gc, + physDev->org.x + rc.left, physDev->org.y + rc.top, + rc.right-rc.left-1, rc.bottom-rc.top-1, 0, 360*64 ); + wine_tsx11_unlock(); update = TRUE; } @@ -997,14 +1013,12 @@ X11DRV_Polyline( X11DRV_PDEVICE *physDev, const POINT* pt, INT count ) if (X11DRV_SetupGCForPen ( physDev )) { - /* Update the pixmap from the DIB section */ - X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod, FALSE); - - TSXDrawLines( gdi_display, physDev->drawable, physDev->gc, - points, count, CoordModeOrigin ); - - /* Update the DIBSection from the pixmap */ - X11DRV_UnlockDIBSection(physDev, TRUE); + X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod, FALSE); + wine_tsx11_lock(); + XDrawLines( gdi_display, physDev->drawable, physDev->gc, + points, count, CoordModeOrigin ); + wine_tsx11_unlock(); + X11DRV_UnlockDIBSection(physDev, TRUE); } HeapFree( GetProcessHeap(), 0, points ); @@ -1107,8 +1121,10 @@ X11DRV_PolyPolygon( X11DRV_PDEVICE *physDev, const POINT* pt, const INT* counts, pt++; } points[j] = points[0]; - TSXDrawLines( gdi_display, physDev->drawable, physDev->gc, - points, j + 1, CoordModeOrigin ); + wine_tsx11_lock(); + XDrawLines( gdi_display, physDev->drawable, physDev->gc, + points, j + 1, CoordModeOrigin ); + wine_tsx11_unlock(); } /* Update the DIBSection of the dc's bitmap */ @@ -1150,8 +1166,10 @@ X11DRV_PolyPolyline( X11DRV_PDEVICE *physDev, const POINT* pt, const DWORD* coun points[j].y = physDev->org.y + tmp.y; pt++; } - TSXDrawLines( gdi_display, physDev->drawable, physDev->gc, - points, j, CoordModeOrigin ); + wine_tsx11_lock(); + XDrawLines( gdi_display, physDev->drawable, physDev->gc, + points, j, CoordModeOrigin ); + wine_tsx11_unlock(); } /* Update the DIBSection of the dc's bitmap */ diff --git a/graphics/x11drv/palette.c b/graphics/x11drv/palette.c index 64908797ee3..d5115fbe8cb 100644 --- a/graphics/x11drv/palette.c +++ b/graphics/x11drv/palette.c @@ -333,6 +333,7 @@ static BOOL X11DRV_PALETTE_BuildPrivateMap( const PALETTEENTRY *sys_pal_template /* Allocate system palette colors */ + wine_tsx11_lock(); for( i=0; i < palette_size; i++ ) { if( i < NB_RESERVED_COLORS/2 ) @@ -355,7 +356,7 @@ static BOOL X11DRV_PALETTE_BuildPrivateMap( const PALETTEENTRY *sys_pal_template color.flags = DoRed | DoGreen | DoBlue; color.pixel = i; - TSXStoreColor(gdi_display, X11DRV_PALETTE_PaletteXColormap, &color); + XStoreColor(gdi_display, X11DRV_PALETTE_PaletteXColormap, &color); /* Set EGA mapping if color is from the first or last eight */ @@ -364,6 +365,7 @@ static BOOL X11DRV_PALETTE_BuildPrivateMap( const PALETTEENTRY *sys_pal_template else if (i >= palette_size - 8 ) X11DRV_PALETTE_mapEGAPixel[i - (palette_size - 16)] = color.pixel; } + wine_tsx11_unlock(); X11DRV_PALETTE_XPixelToPalette = X11DRV_PALETTE_PaletteToXPixel = NULL; @@ -1138,7 +1140,9 @@ static UINT X11DRV_PALETTE_SetMapping( PALETTEOBJ* palPtr, UINT uStart, UINT uNu color.green = palPtr->logpalette.palPalEntry[uStart].peGreen << 8; color.blue = palPtr->logpalette.palPalEntry[uStart].peBlue << 8; color.flags = DoRed | DoGreen | DoBlue; - TSXStoreColor(gdi_display, X11DRV_PALETTE_PaletteXColormap, &color); + wine_tsx11_lock(); + XStoreColor(gdi_display, X11DRV_PALETTE_PaletteXColormap, &color); + wine_tsx11_unlock(); COLOR_sysPal[index] = palPtr->logpalette.palPalEntry[uStart]; COLOR_sysPal[index].peFlags = flag; diff --git a/graphics/x11drv/text.c b/graphics/x11drv/text.c index 4b8aac9b49b..f1b930785cb 100644 --- a/graphics/x11drv/text.c +++ b/graphics/x11drv/text.c @@ -139,10 +139,12 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags, { X11DRV_LockDIBSection( physDev, DIB_Status_GdiMod, FALSE ); dibUpdateFlag = TRUE; - TSXSetForeground( gdi_display, physDev->gc, physDev->backgroundPixel ); - TSXFillRectangle( gdi_display, physDev->drawable, physDev->gc, - physDev->org.x + rect.left, physDev->org.y + rect.top, - rect.right-rect.left, rect.bottom-rect.top ); + wine_tsx11_lock(); + XSetForeground( gdi_display, physDev->gc, physDev->backgroundPixel ); + XFillRectangle( gdi_display, physDev->drawable, physDev->gc, + physDev->org.x + rect.left, physDev->org.y + rect.top, + rect.right-rect.left, rect.bottom-rect.top ); + wine_tsx11_unlock(); } if (!count) goto END; /* Nothing more to do */ @@ -245,10 +247,12 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags, (y - ascent < rect.top) || (y + descent >= rect.bottom)) { - TSXSetForeground( gdi_display, physDev->gc, physDev->backgroundPixel ); - TSXFillRectangle( gdi_display, physDev->drawable, physDev->gc, - physDev->org.x + x, physDev->org.y + y - ascent, - width, ascent + descent ); + wine_tsx11_lock(); + XSetForeground( gdi_display, physDev->gc, physDev->backgroundPixel ); + XFillRectangle( gdi_display, physDev->drawable, physDev->gc, + physDev->org.x + x, physDev->org.y + y - ascent, + width, ascent + descent ); + wine_tsx11_unlock(); } } } @@ -257,7 +261,9 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags, if (!(str2b = X11DRV_cptable[pfo->fi->cptable].punicode_to_char2b( pfo, wstr, count ))) goto FAIL; - TSXSetForeground( gdi_display, physDev->gc, physDev->textPixel ); + wine_tsx11_lock(); + XSetForeground( gdi_display, physDev->gc, physDev->textPixel ); + wine_tsx11_unlock(); if(!rotated) { if (!dc->charExtra && !dc->breakExtra && !lpDx) @@ -378,34 +384,36 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags, /* Draw underline and strike-out if needed */ + wine_tsx11_lock(); if (lfUnderline) { long linePos, lineWidth; - if (!TSXGetFontProperty( font, XA_UNDERLINE_POSITION, &linePos )) + if (!XGetFontProperty( font, XA_UNDERLINE_POSITION, &linePos )) linePos = descent - 1; - if (!TSXGetFontProperty( font, XA_UNDERLINE_THICKNESS, &lineWidth )) + if (!XGetFontProperty( font, XA_UNDERLINE_THICKNESS, &lineWidth )) lineWidth = 0; else if (lineWidth == 1) lineWidth = 0; - TSXSetLineAttributes( gdi_display, physDev->gc, lineWidth, - LineSolid, CapRound, JoinBevel ); - TSXDrawLine( gdi_display, physDev->drawable, physDev->gc, - physDev->org.x + x, physDev->org.y + y + linePos, - physDev->org.x + x + width, physDev->org.y + y + linePos ); + XSetLineAttributes( gdi_display, physDev->gc, lineWidth, + LineSolid, CapRound, JoinBevel ); + XDrawLine( gdi_display, physDev->drawable, physDev->gc, + physDev->org.x + x, physDev->org.y + y + linePos, + physDev->org.x + x + width, physDev->org.y + y + linePos ); } if (lfStrikeOut) { long lineAscent, lineDescent; - if (!TSXGetFontProperty( font, XA_STRIKEOUT_ASCENT, &lineAscent )) + if (!XGetFontProperty( font, XA_STRIKEOUT_ASCENT, &lineAscent )) lineAscent = ascent / 2; - if (!TSXGetFontProperty( font, XA_STRIKEOUT_DESCENT, &lineDescent )) + if (!XGetFontProperty( font, XA_STRIKEOUT_DESCENT, &lineDescent )) lineDescent = -lineAscent * 2 / 3; - TSXSetLineAttributes( gdi_display, physDev->gc, lineAscent + lineDescent, - LineSolid, CapRound, JoinBevel ); - TSXDrawLine( gdi_display, physDev->drawable, physDev->gc, - physDev->org.x + x, physDev->org.y + y - lineAscent, - physDev->org.x + x + width, physDev->org.y + y - lineAscent ); + XSetLineAttributes( gdi_display, physDev->gc, lineAscent + lineDescent, + LineSolid, CapRound, JoinBevel ); + XDrawLine( gdi_display, physDev->drawable, physDev->gc, + physDev->org.x + x, physDev->org.y + y - lineAscent, + physDev->org.x + x + width, physDev->org.y + y - lineAscent ); } + wine_tsx11_unlock(); if (flags & ETO_CLIPPED) RestoreVisRgn16( HDC_16(dc->hSelf) ); goto END;