ddraw correctness fixes patch

Matthew Mastracci matt at aclaro.com
Fri Mar 18 08:51:03 CST 2005


Thanks for the review - comments inline.

Christian Costa wrote:

>>The new locking mechanism is wrong. 
>>DDLOCK_xxx are just used for optimization.
>>
>>The thing to do during the blit should be something like that :
>>
>>sdesc.dwSize = sizeof(sdesc);
>>ddesc.dwSize = sizeof(ddesc);
>>if (src == NULL)
>>IDirectDrawSurface7_Lock(iface, &lock_dst, &ddesc, DDLOCK_WRITEONLY, 0);
>>else if (src == iface) {
>>RECT lock_union = < rect that just contains lock_dst and lock_src >; 
>>IDirectDrawSurface7_Lock(iface, &lock_union, &ddesc, 0, 0);
>>sdesc = ddesc;
> 
> 
> I think here that sdesc and ddesc surface pointers should be remapped according to lock_src and lock_dest.

The above logic makes sense - I originally tried to solve it this way, 
but ended up failing because of the sdesc and ddesc mapping issue.  Any 
idea how to do this cleanly?

>>The added DD_STRUCT_INIT are useless.

Noted.

Matt.




More information about the wine-devel mailing list