wined3d: in surface Blt when source and destination are not the same only lock the part of the destination surface that is requested to copy to.

H. Verbeet hverbeet at gmail.com
Mon Jul 28 10:39:47 CDT 2008


2008/7/28 Aric Stewart <aric at codeweavers.com>:
> +        if (Src != This)
> +        {
> +            xdst.top = 0;
> +            xdst.bottom = DestRect->bottom - DestRect->top;
> +            xdst.left = 0;
> +            xdst.right = DestRect->right - DestRect->left;
> +        }
This will still break the rectangle bounds check further down (around
line 940), and anything else that depends on the position of the
rectangle within the surface. Come to think of it, the rectangle
bounds check should probably be done before trying to lock the
surface. Something else I just thought of is that LockRect() probably
won't handle mirrored or flipped destination rectangles very well.



More information about the wine-patches mailing list