Hi,
> I looked at that, and it is a reference counting issue. Red alert deals
> nicely with its surfaces and the ddraw object itself, but it creates a
> palette and doesn't release it. A palette holds a reference to the
> DirectDraw interface it was created from, this is shown by a test case I
> sent some days ago. Because the palette isn't released, the final release
> call of the DirectDraw interface returns 1 instead of the apparently
> expected 0. On windows 95 it apparently gets a final refcount of 0, I could
> imaging that reference counting is different in older ddraw interfaces, or
> that there is some call which implicitly releases all palettes(I can only
> imaging
> IDirectDraw::RestoreDisplayMode)
>
> This worked in the old directdraw version because it (incorrectly) didn't
> AddRef the device when a Palette was created.
I have an update on that: A quick test showed that while 
IDirectDraw7::CreatePalette addrefs the interface as shown in my refcount 
test, IDirectDraw::CreatePalette doesn't do so. So the 2 DirectDraw interface 
versions behave differently here.

This is related to the refcounting issue Star wars racer is having: 
http://bugs.winehq.com/show_bug.cgi?id=5007

Attachment: pgpSGO5Z9GsAM.pgp
Description: PGP signature



Reply via email to