Massimo Del Fedele <max(a)veneto.com> writes:
> diff --git a/dlls/winex11.drv/dib.c b/dlls/winex11.drv/dib.c
> index 6df4137..42d9082 100644
> --- a/dlls/winex11.drv/dib.c
> +++ b/dlls/winex11.drv/dib.c
> @@ -3927,6 +3927,7 @@ INT CDECL X11DRV_SetDIBits( X11DRV_PDEVICE *physDev, HBITMAP hbitmap, UINT start
> X11DRV_DIB_IMAGEBITS_DESCR descr;
> DIBSECTION ds;
> LONG width, height, tmpheight;
> + LONG widthBytes;
> INT result;
>
> descr.physDev = physDev;
> @@ -3936,6 +3937,7 @@ INT CDECL X11DRV_SetDIBits( X11DRV_PDEVICE *physDev, HBITMAP hbitmap, UINT start
> if (DIB_GetBitmapInfo( &info->bmiHeader, &width, &height,
> &descr.infoBpp, &descr.compression ) == -1)
> return 0;
> + widthBytes = ((width * descr.infoBpp +31) &~31) / 8;
>
> tmpheight = height;
> if (height < 0) height = -height;
> @@ -3977,7 +3979,7 @@ INT CDECL X11DRV_SetDIBits( X11DRV_PDEVICE *physDev, HBITMAP hbitmap, UINT start
> default: break;
> }
>
> - descr.bits = bits;
> + descr.bits = (BYTE *)bits + widthBytes * (tmpheight > 0 ? (height - startscan - lines) : startscan);
You shouldn't need to change the bits address.
--
Alexandre Julliard
julliard(a)winehq.org