Empire Earth continued
Stefan Dösinger
stefandoesinger at gmx.at
Thu Sep 8 11:05:29 CDT 2005
Hi,
I think I've found the cause of the Empire Earth crash. This is not a
reference counting problem at all, Empire Earth releases the DirectDraw and
Surface objects on purpose. This is what happens:
1) EE creates a DDraw object
2) It attaches a Complex Surface
3) It sets up a D3D device for this Surface
4) EE performs a Flip(NULL, 0x20) on the surface
5) It Releases the DirectDraw object
6) It Releases the surface
Wine releases the surface in 5), Windows doesn't. It appears to me, that
Windows doesn't release Surfaces which have a D3D object attached when the
DDraw instance they belong to is freed.
I have written a small test app, which reproduces EEs behaviour. It crashes in
Wine, but worksin Windows 2000. I'll do some more tests and submit a patch.
Stefan
More information about the wine-devel
mailing list