Massimo Del Fedele <[email protected]> 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 [email protected]
