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
pgpSGO5Z9GsAM.pgp
Description: PGP signature
