wined3d: Allow SetCursorProperties on existing cursor

Stefan Dösinger stefan at codeweavers.com
Sat Mar 10 18:42:03 CST 2007


> The API documentation doesn't say anything about an application releasing
> the d3d surface,
There is a test for that somewhere in dlls/d3d9/tests/device.c (or some other 
test file in there).

> but the documentation in the code seems to indicate that 
> the gl texture needs to remain when the surface is deleted - I did nothing
> to change this. 
But IWineD3DSurfaceImpl_Release will destroy the gl texture of a surface when 
the surface is destroyed.

Also, if the gl surface still knows the texture, the following could cause an 
issue:

SetCursorProperties(cursorSurface, ...);

<render some stuff>

LockRect(cursorSurface, ...);
<write some thing into the surface>
UnlockRect(cursorSurface);
PreLoad(cursorSurface);

The PreLoad will then change the cursor without SetCursorProperties beeing 
called. This should not happen. I tested that with some hacky test. 
Unfortunately this cannot be automated in the visual tests because cursors do 
not show up in screenshots.

This is my hacky cursor test app:
http://stud4.tuwien.ac.at/~e0526822/visual.c

The successor of that file without the cursor tests is now in 
dlls/d3d9/tests/visual.c. I think this visual.c version is not the version I 
used for checking later surface changes.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20070311/1cd4fef9/attachment.pgp


More information about the wine-devel mailing list