On Wed, Aug 12, 2009 at 3:05 AM, Stefan Dösinger <stefandoesinger@gmx.at> wrote:
Am Tuesday 11 August 2009 23:43:33 schrieb Johan Gill:
> There is IWineD3DDeviceImpl_SetupFullscreenWindow, but that one is not
>
> exported so it can't be called from ddraw as it is.
>
> Calling it from within IWineD3DDevice_SetDisplayMode seems troublesome
> since the hwnd to use is not always available in the WineD3DDevice. See for
> instance this example from CreateSwapChain:
Hmm, this entire problem is pretty tricky, and it goes beyond ddraw. We have
to attack the broader set of problems.

For starts, we need a few tests to find out

*) Does ddraw change the window params at all, and if yes, when(your test
already answers part of that).
*) How does restoredisplaymode behave
*) Does ddraw restore the display mode on SetCooperativeLevel(DDSCL_NORMAL)
*) Does ddraw restore the display mode on ddraw device release? On primary
surface release?
*) Who restores the display mode on app exit if the ddraw iface is not
released? What happens with the window in that case?
*) Who restores the display mode on an app crash?
*) How does User32.ChangeDisplaySettingsEx FULLSCREEN flag(= temporary mode
change) work?
*) What happens if two different apps set conflicting FULLSCREEN modes?
*) How does the CDS FULLSCREEN flag affect the window?

And I am sure more questions will arise during the testing process

What's the current status here? I've been up to the nose in other things, but I should be able to check a few things out if needed.

/Johan Gill