diff --git a/dlls/winex11.drv/dib.c b/dlls/winex11.drv/dib.c index 7e305301784..46e81488134 100644 --- a/dlls/winex11.drv/dib.c +++ b/dlls/winex11.drv/dib.c @@ -3777,24 +3777,6 @@ INT X11DRV_CoerceDIBSection(X11DRV_PDEVICE *physDev, INT req) return X11DRV_DIB_Coerce(physDev->bitmap, req); } -/*********************************************************************** - * X11DRV_LockDIBSection - */ -INT X11DRV_LockDIBSection(X11DRV_PDEVICE *physDev, INT req) -{ - if (!physDev || !physDev->bitmap) return DIB_Status_None; - return X11DRV_DIB_Lock(physDev->bitmap, req); -} - -/*********************************************************************** - * X11DRV_UnlockDIBSection - */ -void X11DRV_UnlockDIBSection(X11DRV_PDEVICE *physDev, BOOL commit) -{ - if (!physDev || !physDev->bitmap) return; - X11DRV_DIB_Unlock(physDev->bitmap, commit); -} - #ifdef HAVE_LIBXXSHM /*********************************************************************** diff --git a/dlls/winex11.drv/graphics.c b/dlls/winex11.drv/graphics.c index aa5e32250c8..e317eb9f536 100644 --- a/dlls/winex11.drv/graphics.c +++ b/dlls/winex11.drv/graphics.c @@ -522,9 +522,6 @@ BOOL X11DRV_LineTo( PHYSDEV dev, INT x, INT y ) POINT pt[2]; if (X11DRV_SetupGCForPen( physDev )) { - /* Update the pixmap from the DIB section */ - X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod); - GetCurrentPositionEx( dev->hdc, &pt[0] ); pt[1].x = x; pt[1].y = y; @@ -535,9 +532,6 @@ BOOL X11DRV_LineTo( PHYSDEV dev, INT x, INT y ) physDev->dc_rect.left + pt[0].x, physDev->dc_rect.top + pt[0].y, physDev->dc_rect.left + pt[1].x, physDev->dc_rect.top + pt[1].y ); wine_tsx11_unlock(); - - /* Update the DIBSection from the pixmap */ - X11DRV_UnlockDIBSection(physDev, TRUE); } return TRUE; } @@ -559,7 +553,6 @@ static BOOL X11DRV_DrawArc( PHYSDEV dev, INT left, INT top, INT right, INT botto INT width, oldwidth; double start_angle, end_angle; XPoint points[4]; - BOOL update = FALSE; POINT start, end; RECT rc = get_device_rect( dev->hdc, left, top, right, bottom ); @@ -613,9 +606,6 @@ static BOOL X11DRV_DrawArc( PHYSDEV dev, INT left, INT top, INT right, INT botto idiff_angle = (INT)((end_angle - start_angle) * 180 * 64 / PI + 0.5); if (idiff_angle <= 0) idiff_angle += 360 * 64; - /* Update the pixmap from the DIB section */ - X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod); - /* Fill arc with brush if Chord() or Pie() */ if ((lines > 0) && X11DRV_SetupGCForBrush( physDev )) { @@ -625,7 +615,6 @@ static BOOL X11DRV_DrawArc( PHYSDEV dev, INT left, INT top, INT right, INT botto physDev->dc_rect.left + rc.left, physDev->dc_rect.top + 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 */ @@ -693,12 +682,8 @@ static BOOL X11DRV_DrawArc( PHYSDEV dev, INT left, INT top, INT right, INT botto points, lines+1, CoordModeOrigin ); } wine_tsx11_unlock(); - update = TRUE; } - /* Update the DIBSection of the pixmap */ - X11DRV_UnlockDIBSection(physDev, update); - physDev->pen.width = oldwidth; return TRUE; } @@ -740,7 +725,6 @@ BOOL X11DRV_Ellipse( PHYSDEV dev, INT left, INT top, INT right, INT bottom ) { X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); INT width, oldwidth; - BOOL update = FALSE; RECT rc = get_device_rect( dev->hdc, left, top, right, bottom ); if ((rc.left == rc.right) || (rc.top == rc.bottom)) return TRUE; @@ -761,9 +745,6 @@ BOOL X11DRV_Ellipse( PHYSDEV dev, INT left, INT top, INT right, INT bottom ) if(width == 0) width = 1; /* more accurate */ physDev->pen.width = width; - /* Update the pixmap from the DIB section */ - X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod); - if (X11DRV_SetupGCForBrush( physDev )) { wine_tsx11_lock(); @@ -771,7 +752,6 @@ BOOL X11DRV_Ellipse( PHYSDEV dev, INT left, INT top, INT right, INT bottom ) physDev->dc_rect.left + rc.left, physDev->dc_rect.top + rc.top, rc.right-rc.left-1, rc.bottom-rc.top-1, 0, 360*64 ); wine_tsx11_unlock(); - update = TRUE; } if (X11DRV_SetupGCForPen( physDev )) { @@ -780,12 +760,8 @@ BOOL X11DRV_Ellipse( PHYSDEV dev, INT left, INT top, INT right, INT bottom ) physDev->dc_rect.left + rc.left, physDev->dc_rect.top + rc.top, rc.right-rc.left-1, rc.bottom-rc.top-1, 0, 360*64 ); wine_tsx11_unlock(); - update = TRUE; } - /* Update the DIBSection from the pixmap */ - X11DRV_UnlockDIBSection(physDev, update); - physDev->pen.width = oldwidth; return TRUE; } @@ -798,7 +774,6 @@ BOOL X11DRV_Rectangle(PHYSDEV dev, INT left, INT top, INT right, INT bottom) { X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); INT width, oldwidth, oldjoinstyle; - BOOL update = FALSE; RECT rc = get_device_rect( dev->hdc, left, top, right, bottom ); TRACE("(%d %d %d %d)\n", left, top, right, bottom); @@ -824,9 +799,6 @@ BOOL X11DRV_Rectangle(PHYSDEV dev, INT left, INT top, INT right, INT bottom) if(physDev->pen.type != PS_GEOMETRIC) physDev->pen.linejoin = PS_JOIN_MITER; - /* Update the pixmap from the DIB section */ - X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod); - if ((rc.right > rc.left + width) && (rc.bottom > rc.top + width)) { if (X11DRV_SetupGCForBrush( physDev )) @@ -837,7 +809,6 @@ BOOL X11DRV_Rectangle(PHYSDEV dev, INT left, INT top, INT right, INT bottom) physDev->dc_rect.top + rc.top + (width + 1) / 2, rc.right-rc.left-width-1, rc.bottom-rc.top-width-1); wine_tsx11_unlock(); - update = TRUE; } } if (X11DRV_SetupGCForPen( physDev )) @@ -847,12 +818,8 @@ BOOL X11DRV_Rectangle(PHYSDEV dev, INT left, INT top, INT right, INT bottom) physDev->dc_rect.left + rc.left, physDev->dc_rect.top + rc.top, rc.right-rc.left-1, rc.bottom-rc.top-1 ); wine_tsx11_unlock(); - update = TRUE; } - /* Update the DIBSection from the pixmap */ - X11DRV_UnlockDIBSection(physDev, update); - physDev->pen.width = oldwidth; physDev->pen.linejoin = oldjoinstyle; return TRUE; @@ -866,7 +833,6 @@ BOOL X11DRV_RoundRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom, { X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); INT width, oldwidth, oldendcap; - BOOL update = FALSE; POINT pts[2]; RECT rc = get_device_rect( dev->hdc, left, top, right, bottom ); @@ -903,9 +869,6 @@ BOOL X11DRV_RoundRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom, physDev->pen.width = width; physDev->pen.endcap = PS_ENDCAP_SQUARE; - /* Update the pixmap from the DIB section */ - X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod); - if (X11DRV_SetupGCForBrush( physDev )) { wine_tsx11_lock(); @@ -971,7 +934,6 @@ BOOL X11DRV_RoundRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom, rc.bottom - rc.top - ell_height - 1); } wine_tsx11_unlock(); - update = TRUE; } /* FIXME: this could be done with on X call * more efficient and probably more correct @@ -1049,10 +1011,7 @@ BOOL X11DRV_RoundRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom, physDev->dc_rect.top + rc.bottom - (ell_height+1) / 2); } wine_tsx11_unlock(); - update = TRUE; } - /* Update the DIBSection from the pixmap */ - X11DRV_UnlockDIBSection(physDev, update); physDev->pen.width = oldwidth; physDev->pen.endcap = oldendcap; @@ -1138,12 +1097,10 @@ BOOL X11DRV_Polyline( PHYSDEV dev, const POINT* pt, INT count ) if (X11DRV_SetupGCForPen ( physDev )) { - X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod); wine_tsx11_lock(); XDrawLines( gdi_display, physDev->drawable, physDev->gc, points, count, CoordModeOrigin ); wine_tsx11_unlock(); - X11DRV_UnlockDIBSection(physDev, TRUE); } HeapFree( GetProcessHeap(), 0, points ); @@ -1159,7 +1116,6 @@ BOOL X11DRV_Polygon( PHYSDEV dev, const POINT* pt, INT count ) X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); int i; XPoint *points; - BOOL update = FALSE; if (!(points = HeapAlloc( GetProcessHeap(), 0, sizeof(XPoint) * (count+1) ))) { @@ -1175,16 +1131,12 @@ BOOL X11DRV_Polygon( PHYSDEV dev, const POINT* pt, INT count ) } points[count] = points[0]; - /* Update the pixmap from the DIB section */ - X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod); - if (X11DRV_SetupGCForBrush( physDev )) { wine_tsx11_lock(); XFillPolygon( gdi_display, physDev->drawable, physDev->gc, points, count+1, Complex, CoordModeOrigin); wine_tsx11_unlock(); - update = TRUE; } if (X11DRV_SetupGCForPen ( physDev )) { @@ -1192,12 +1144,8 @@ BOOL X11DRV_Polygon( PHYSDEV dev, const POINT* pt, INT count ) XDrawLines( gdi_display, physDev->drawable, physDev->gc, points, count+1, CoordModeOrigin ); wine_tsx11_unlock(); - update = TRUE; } - /* Update the DIBSection from the pixmap */ - X11DRV_UnlockDIBSection(physDev, update); - HeapFree( GetProcessHeap(), 0, points ); return TRUE; } @@ -1226,9 +1174,6 @@ BOOL X11DRV_PolyPolygon( PHYSDEV dev, const POINT* pt, const INT* counts, UINT p int j, max = 0; XPoint *points; - /* Update the pixmap from the DIB section */ - X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod); - for (i = 0; i < polygons; i++) if (counts[i] > max) max = counts[i]; if (!(points = HeapAlloc( GetProcessHeap(), 0, sizeof(XPoint) * (max+1) ))) { @@ -1251,10 +1196,6 @@ BOOL X11DRV_PolyPolygon( PHYSDEV dev, const POINT* pt, const INT* counts, UINT p points, j + 1, CoordModeOrigin ); wine_tsx11_unlock(); } - - /* Update the DIBSection of the dc's bitmap */ - X11DRV_UnlockDIBSection(physDev, TRUE); - HeapFree( GetProcessHeap(), 0, points ); } return TRUE; @@ -1273,9 +1214,6 @@ BOOL X11DRV_PolyPolyline( PHYSDEV dev, const POINT* pt, const DWORD* counts, DWO unsigned int i, j, max = 0; XPoint *points; - /* Update the pixmap from the DIB section */ - X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod); - for (i = 0; i < polylines; i++) if (counts[i] > max) max = counts[i]; if (!(points = HeapAlloc( GetProcessHeap(), 0, sizeof(XPoint) * max ))) { @@ -1297,10 +1235,6 @@ BOOL X11DRV_PolyPolyline( PHYSDEV dev, const POINT* pt, const DWORD* counts, DWO points, j, CoordModeOrigin ); wine_tsx11_unlock(); } - - /* Update the DIBSection of the dc's bitmap */ - X11DRV_UnlockDIBSection(physDev, TRUE); - HeapFree( GetProcessHeap(), 0, points ); } return TRUE; @@ -1427,9 +1361,6 @@ BOOL X11DRV_ExtFloodFill( PHYSDEV dev, INT x, INT y, COLORREF color, UINT fillTy { unsigned long pixel = X11DRV_PALETTE_ToPhysical( physDev, color ); - /* Update the pixmap from the DIB section */ - X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod); - /* ROP mode is always GXcopy for flood-fill */ wine_tsx11_lock(); XSetFunction( gdi_display, physDev->gc, GXcopy ); @@ -1440,8 +1371,6 @@ BOOL X11DRV_ExtFloodFill( PHYSDEV dev, INT x, INT y, COLORREF color, UINT fillTy physDev->dc_rect.top + rect.top, pixel, fillType ); wine_tsx11_unlock(); - /* Update the DIBSection of the dc's bitmap */ - X11DRV_UnlockDIBSection(physDev, TRUE); } wine_tsx11_lock(); diff --git a/dlls/winex11.drv/text.c b/dlls/winex11.drv/text.c index b1bcf67ca9d..f0197b60c42 100644 --- a/dlls/winex11.drv/text.c +++ b/dlls/winex11.drv/text.c @@ -47,7 +47,6 @@ BOOL X11DRV_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, XFontStruct* font; BOOL rotated = FALSE; XChar2b *str2b = NULL; - BOOL dibUpdateFlag = FALSE; BOOL result = TRUE; if (!pfo) @@ -71,8 +70,6 @@ BOOL X11DRV_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, if (flags & ETO_OPAQUE) { - X11DRV_LockDIBSection( physDev, DIB_Status_GdiMod ); - dibUpdateFlag = TRUE; wine_tsx11_lock(); XSetForeground( gdi_display, physDev->gc, physDev->backgroundPixel ); XFillRectangle( gdi_display, physDev->drawable, physDev->gc, @@ -92,14 +89,6 @@ BOOL X11DRV_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, DeleteObject( clip_region ); } - /* Draw the text background if necessary */ - - if (!dibUpdateFlag) - { - X11DRV_LockDIBSection( physDev, DIB_Status_GdiMod ); - dibUpdateFlag = TRUE; - } - /* Draw the text (count > 0 verified) */ if (!(str2b = X11DRV_cptable[pfo->fi->cptable].punicode_to_char2b( pfo, wstr, count ))) @@ -181,7 +170,6 @@ BOOL X11DRV_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, END: HeapFree( GetProcessHeap(), 0, str2b ); - if (dibUpdateFlag) X11DRV_UnlockDIBSection( physDev, TRUE ); if (restore_region) restore_clipping_region( physDev ); return result; } diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index c754623500f..69e761390cc 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -463,8 +463,6 @@ extern const dib_conversions dib_normal DECLSPEC_HIDDEN, dib_src_byteswap DECLSP extern INT X11DRV_DIB_MaskToShift(DWORD mask) DECLSPEC_HIDDEN; extern INT X11DRV_CoerceDIBSection(X11DRV_PDEVICE *physDev,INT) DECLSPEC_HIDDEN; -extern INT X11DRV_LockDIBSection(X11DRV_PDEVICE *physDev,INT) DECLSPEC_HIDDEN; -extern void X11DRV_UnlockDIBSection(X11DRV_PDEVICE *physDev,BOOL) DECLSPEC_HIDDEN; extern INT X11DRV_DIB_Lock(X_PHYSBITMAP *,INT) DECLSPEC_HIDDEN; extern void X11DRV_DIB_Unlock(X_PHYSBITMAP *,BOOL) DECLSPEC_HIDDEN; diff --git a/dlls/winex11.drv/xrender.c b/dlls/winex11.drv/xrender.c index 623d2142d96..6e4f8d37088 100644 --- a/dlls/winex11.drv/xrender.c +++ b/dlls/winex11.drv/xrender.c @@ -1751,8 +1751,6 @@ static BOOL xrenderdrv_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, XChangeGC( gdi_display, physdev->x11dev->gc, GCFunction | GCBackground | GCFillStyle, &xgcval ); wine_tsx11_unlock(); - X11DRV_LockDIBSection( physdev->x11dev, DIB_Status_GdiMod ); - if(physdev->x11dev->depth == 1) { if((physdev->x11dev->textPixel & 0xffffff) == 0) { textPixel = 0; @@ -1776,11 +1774,7 @@ static BOOL xrenderdrv_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, wine_tsx11_unlock(); } - if(count == 0) - { - X11DRV_UnlockDIBSection( physdev->x11dev, TRUE ); - return TRUE; - } + if(count == 0) return TRUE; EnterCriticalSection(&xrender_cs); @@ -1802,7 +1796,6 @@ static BOOL xrenderdrv_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, { WARN("could not upload requested glyphs\n"); LeaveCriticalSection(&xrender_cs); - X11DRV_UnlockDIBSection( physdev->x11dev, TRUE ); return FALSE; } @@ -1871,7 +1864,6 @@ static BOOL xrenderdrv_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, HeapFree(GetProcessHeap(), 0, elts); LeaveCriticalSection(&xrender_cs); - X11DRV_UnlockDIBSection( physdev->x11dev, TRUE ); return TRUE; }