DSurface optimization, comments requested

H. Verbeet hverbeet at gmail.com
Fri Jul 25 06:02:24 CDT 2008


2008/7/25 Aric Stewart <aric at codeweavers.com>:
> -        IWineD3DSurface_LockRect(iface, &dlock, NULL, 0);
> +        IWineD3DSurface_LockRect(iface, &dlock, DestRect, 0);
>         dfmt = This->resource.format;
>         slock = dlock;
I don't think you can simply insert DestRect there, unless it's the
same as SrcRect (because of the slock = dlock line a few lines down).

>     if (DestRect)
>     {
> -        xdst = *DestRect;
> +        xdst.top = 0;
> +        xdst.bottom = DestRect->bottom - DestRect->top;
> +        xdst.left = 0;
> +        xdst.right = DestRect->right - DestRect->left;
>     }
This will break things like checking for out of surface rectangles,
clipping and overlapping blits.

Stefan knows this part of the code better than me, but I don't think
there's anything wrong with the concept of the patch.



More information about the wine-devel mailing list