[Wine] Re: Winscop [French Project]
qwertymn
wineforum-user at winehq.org
Fri Nov 20 01:52:11 CST 2009
Don't set ole32.dll to native. It won't help you with this app.
Apply the patch below (patch -Np1 -i name_of_patch) and recompile
>
> diff --git a/dlls/winex11.drv/dib.c b/dlls/winex11.drv/dib.c
> index 587c7c7..89e8f1e 100644
> --- a/dlls/winex11.drv/dib.c
> +++ b/dlls/winex11.drv/dib.c
> @@ -4039,33 +4039,6 @@ INT CDECL X11DRV_SetDIBits( X11DRV_PDEVICE *physDev, HBITMAP hbitmap, UINT start
> X11DRV_DIB_Lock( physBitmap, DIB_Status_GdiMod );
> result = X11DRV_DIB_SetImageBits( &descr );
>
> - /* optimisation for the case where the input bits are in exactly the same
> - * format as the internal representation and copying to the app bits is
> - * cheap - saves a round trip to the X server */
> - if (descr.compression == BI_RGB &&
> - coloruse == DIB_RGB_COLORS &&
> - descr.infoBpp == ds.dsBm.bmBitsPixel &&
> - physBitmap->base && physBitmap->size < 65536)
> - {
> - unsigned int srcwidthb = ds.dsBm.bmWidthBytes;
> - int dstwidthb = X11DRV_DIB_GetDIBWidthBytes( width, descr.infoBpp );
> - LPBYTE dbits = physBitmap->base, sbits = (LPBYTE)bits + (startscan * srcwidthb);
> - int widthb;
> - UINT y;
> -
> - TRACE("syncing compatible set bits to app bits\n");
> - if ((tmpheight < 0) ^ (ds.dsBmih.biHeight < 0))
> - {
> - dbits += dstwidthb * (lines-1);
> - dstwidthb = -dstwidthb;
> - }
> - X11DRV_DIB_DoProtectDIBSection( physBitmap, PAGE_READWRITE );
> - widthb = min(srcwidthb, abs(dstwidthb));
> - for (y = 0; y < lines; y++, dbits += dstwidthb, sbits += srcwidthb)
> - memcpy(dbits, sbits, widthb);
> - X11DRV_DIB_DoProtectDIBSection( physBitmap, PAGE_READONLY );
> - physBitmap->status = DIB_Status_InSync;
> - }
> X11DRV_DIB_Unlock( physBitmap, TRUE );
>
> HeapFree(GetProcessHeap(), 0, descr.colorMap);
>
More information about the wine-users
mailing list