Re: Request for review: [PATCH] Resize fullscreen window when DirectDraw changes the display mode [resubmit 4]

2009-10-08 Thread Johan Gill
On Wed, Aug 12, 2009 at 3:05 AM, Stefan Dösinger stefandoesin...@gmx.atwrote:

 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



Re: Request for review: [PATCH] Resize fullscreen window when DirectDraw changes the display mode [resubmit 4]

2009-08-12 Thread Stefan Dösinger
Am Wednesday 12 August 2009 03:05:43 schrieb Stefan Dösinger:
 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
Ah, I forgot to add yesterday, that writing some tests about mode changes is 
on my todo list, although not within the next few weeks.







Re: Request for review: [PATCH] Resize fullscreen window when DirectDraw changes the display mode [resubmit 4]

2009-08-11 Thread Johan Gill
On Wed, Aug 5, 2009 at 7:51 PM, Stefan Dösinger stefandoesin...@gmx.atwrote:

 Am Wednesday 05 August 2009 18:58:42 schrieb Johan Gill:
  On Wed, Jul 29, 2009 at 11:55 PM, Johan Gill johan.g...@gmail.com
 wrote:
   This patch fixes bug 17215. Since the patch was seemingly dropped, I
 made
   some test improvements and resubmit it.
  
   The tests pass on Windows XP, and of course Wine.
  
   Suggested changelog:
   In DirectDraw fullscreen mode, make sure the fullscreen window is
 resized
   when the display mode changes
 Sorry, I haven't noticed the patch earlier. Please nadd the component the
 patch addresses in topic, for example ddraw: Resize fullscreen win... -
 that makes them more visible for me when I look for ddraw/d3d related
 patches.

 As for the patch itself WineD3D.dll already has similar window resize code.
 Do
 you know why it doesn't resize the window, and if we can make wined3d do
 this
 job?


 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:

/* Setup hwnd we are using, plus which display this equates to */
object-win_handle = pPresentationParameters-hDeviceWindow;
if (!object-win_handle) {
object-win_handle = This-createParms.hFocusWindow;
}
if(!pPresentationParameters-Windowed  object-win_handle) {
IWineD3DDeviceImpl_SetupFullscreenWindow(iface, object-win_handle,

pPresentationParameters-BackBufferWidth,

pPresentationParameters-BackBufferHeight);

/Johan Gill



Re: Request for review: [PATCH] Resize fullscreen window when DirectDraw changes the display mode [resubmit 4]

2009-08-11 Thread Stefan Dösinger
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





Request for review: [PATCH] Resize fullscreen window when DirectDraw changes the display mode [resubmit 4]

2009-08-05 Thread Johan Gill
On Wed, Jul 29, 2009 at 11:55 PM, Johan Gill johan.g...@gmail.com wrote:

 This patch fixes bug 17215. Since the patch was seemingly dropped, I made
 some test improvements and resubmit it.

 The tests pass on Windows XP, and of course Wine.

 Suggested changelog:
 In DirectDraw fullscreen mode, make sure the fullscreen window is resized
 when the display mode changes

 Johan Gill


Since I heard nothing on this, I make a request here

/Johan Gill



Re: Request for review: [PATCH] Resize fullscreen window when DirectDraw changes the display mode [resubmit 4]

2009-08-05 Thread Stefan Dösinger
Am Wednesday 05 August 2009 18:58:42 schrieb Johan Gill:
 On Wed, Jul 29, 2009 at 11:55 PM, Johan Gill johan.g...@gmail.com wrote:
  This patch fixes bug 17215. Since the patch was seemingly dropped, I made
  some test improvements and resubmit it.
 
  The tests pass on Windows XP, and of course Wine.
 
  Suggested changelog:
  In DirectDraw fullscreen mode, make sure the fullscreen window is resized
  when the display mode changes
Sorry, I haven't noticed the patch earlier. Please nadd the component the 
patch addresses in topic, for example ddraw: Resize fullscreen win... - 
that makes them more visible for me when I look for ddraw/d3d related 
patches.

As for the patch itself WineD3D.dll already has similar window resize code. Do 
you know why it doesn't resize the window, and if we can make wined3d do this 
job?