[PATCH] WineD3D: Remove the ddraw_window device member=0A=
Stefan Doesinger
stefan at codeweavers.com
Mon Aug 4 14:16:49 CDT 2008
=0A=
use the swapchain's destination window instead=0A=
---=0A=
dlls/wined3d/device.c | 35 =
++++++++++++++++-------------------=0A=
dlls/wined3d/surface.c | 4 ++--=0A=
dlls/wined3d/swapchain_gdi.c | 2 +-=0A=
dlls/wined3d/wined3d_private.h | 1 -=0A=
4 files changed, 19 insertions(+), 23 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c=0A=
index 91da15a..43837b2 100644=0A=
--- a/dlls/wined3d/device.c=0A=
+++ b/dlls/wined3d/device.c=0A=
@@ -1432,13 +1432,10 @@ static HRESULT WINAPI =
IWineD3DDeviceImpl_CreateAdditionalSwapChain(IWineD3DDevic=0A=
if (!object->win_handle) {=0A=
object->win_handle =3D This->createParms.hFocusWindow;=0A=
}=0A=
- if(!This->ddraw_window) {=0A=
- if(!pPresentationParameters->Windowed && object->win_handle) {=0A=
- IWineD3DDeviceImpl_SetupFullscreenWindow(iface, =
object->win_handle,=0A=
- =
pPresentationParameters->BackBufferWidth,=0A=
- =
pPresentationParameters->BackBufferHeight);=0A=
- }=0A=
- This->ddraw_window =3D object->win_handle;=0A=
+ if(!pPresentationParameters->Windowed && object->win_handle) {=0A=
+ IWineD3DDeviceImpl_SetupFullscreenWindow(iface, =
object->win_handle,=0A=
+ =
pPresentationParameters->BackBufferWidth,=0A=
+ =
pPresentationParameters->BackBufferHeight);=0A=
}=0A=
=0A=
hDc =3D GetDC(object->win_handle);=0A=
@@ -6652,8 +6649,8 @@ void stretch_rect_fbo(IWineD3DDevice *iface, =
IWineD3DSurface *src_surface, WINED=0A=
if(buffer =3D=3D GL_FRONT) {=0A=
RECT windowsize;=0A=
UINT h;=0A=
- ClientToScreen(This->ddraw_window, &offset);=0A=
- GetClientRect(This->ddraw_window, &windowsize);=0A=
+ ClientToScreen(((IWineD3DSwapChainImpl =
*)src_swapchain)->win_handle, &offset);=0A=
+ GetClientRect(((IWineD3DSwapChainImpl =
*)src_swapchain)->win_handle, &windowsize);=0A=
h =3D windowsize.bottom - windowsize.top;=0A=
src_rect->x1 -=3D offset.x; src_rect->x2 -=3Doffset.x;=0A=
src_rect->y1 =3D offset.y + h - src_rect->y1;=0A=
@@ -6693,8 +6690,8 @@ void stretch_rect_fbo(IWineD3DDevice *iface, =
IWineD3DSurface *src_surface, WINED=0A=
if(buffer =3D=3D GL_FRONT) {=0A=
RECT windowsize;=0A=
UINT h;=0A=
- ClientToScreen(This->ddraw_window, &offset);=0A=
- GetClientRect(This->ddraw_window, &windowsize);=0A=
+ ClientToScreen(((IWineD3DSwapChainImpl =
*)dst_swapchain)->win_handle, &offset);=0A=
+ GetClientRect(((IWineD3DSwapChainImpl =
*)dst_swapchain)->win_handle, &windowsize);=0A=
h =3D windowsize.bottom - windowsize.top;=0A=
dst_rect->x1 -=3D offset.x; dst_rect->x2 -=3Doffset.x;=0A=
dst_rect->y1 =3D offset.y + h - dst_rect->y1;=0A=
@@ -7397,21 +7394,21 @@ static HRESULT WINAPI =
IWineD3DDeviceImpl_Reset(IWineD3DDevice* iface, WINED3DPRE=0A=
=0A=
IWineD3DDevice_SetDisplayMode(iface, 0, &mode);=0A=
=0A=
- if(This->ddraw_window && !pPresentationParameters->Windowed) {=0A=
+ if(swapchain->win_handle && !pPresentationParameters->Windowed) =
{=0A=
if(swapchain->presentParms.Windowed) {=0A=
/* switch from windowed to fs */=0A=
- IWineD3DDeviceImpl_SetupFullscreenWindow(iface, =
This->ddraw_window,=0A=
+ IWineD3DDeviceImpl_SetupFullscreenWindow(iface, =
swapchain->win_handle,=0A=
=
pPresentationParameters->BackBufferWidth,=0A=
=
pPresentationParameters->BackBufferHeight);=0A=
} else {=0A=
/* Fullscreen -> fullscreen mode change */=0A=
- MoveWindow(This->ddraw_window, 0, 0,=0A=
- pPresentationParameters->BackBufferWidth, =
pPresentationParameters->BackBufferHeight,=0A=
- TRUE);=0A=
+ MoveWindow(swapchain->win_handle, 0, 0,=0A=
+ pPresentationParameters->BackBufferWidth, =
pPresentationParameters->BackBufferHeight,=0A=
+ TRUE);=0A=
}=0A=
- } else if(This->ddraw_window && =
!swapchain->presentParms.Windowed) {=0A=
+ } else if(swapchain->win_handle && =
!swapchain->presentParms.Windowed) {=0A=
/* Fullscreen -> windowed switch */=0A=
- IWineD3DDeviceImpl_RestoreWindow(iface, This->ddraw_window);=0A=
+ IWineD3DDeviceImpl_RestoreWindow(iface, =
swapchain->win_handle);=0A=
}=0A=
swapchain->presentParms.Windowed =3D =
pPresentationParameters->Windowed;=0A=
} else if(!pPresentationParameters->Windowed) {=0A=
@@ -7422,7 +7419,7 @@ static HRESULT WINAPI =
IWineD3DDeviceImpl_Reset(IWineD3DDevice* iface, WINED3DPRE=0A=
*/=0A=
This->style =3D 0;=0A=
This->exStyle =3D 0;=0A=
- IWineD3DDeviceImpl_SetupFullscreenWindow(iface, =
This->ddraw_window,=0A=
+ IWineD3DDeviceImpl_SetupFullscreenWindow(iface, =
swapchain->win_handle,=0A=
=
pPresentationParameters->BackBufferWidth,=0A=
=
pPresentationParameters->BackBufferHeight);=0A=
This->style =3D style;=0A=
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c=0A=
index dff833e..3c56d4c 100644=0A=
--- a/dlls/wined3d/surface.c=0A=
+++ b/dlls/wined3d/surface.c=0A=
@@ -3451,8 +3451,8 @@ static HRESULT =
IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *=0A=
RECT windowsize;=0A=
POINT offset =3D {0,0};=0A=
UINT h;=0A=
- ClientToScreen(myDevice->ddraw_window, &offset);=0A=
- GetClientRect(myDevice->ddraw_window, &windowsize);=0A=
+ ClientToScreen(dstSwapchain->win_handle, &offset);=0A=
+ GetClientRect(dstSwapchain->win_handle, &windowsize);=0A=
h =3D windowsize.bottom - windowsize.top;=0A=
rect.x1 -=3D offset.x; rect.x2 -=3Doffset.x;=0A=
rect.y1 -=3D offset.y; rect.y2 -=3Doffset.y;=0A=
diff --git a/dlls/wined3d/swapchain_gdi.c b/dlls/wined3d/swapchain_gdi.c=0A=
index 41a5475..7aa81c2 100644=0A=
--- a/dlls/wined3d/swapchain_gdi.c=0A=
+++ b/dlls/wined3d/swapchain_gdi.c=0A=
@@ -93,7 +93,7 @@ void x11_copy_to_screen(IWineD3DSwapChainImpl *This, =
LPRECT rc) {=0A=
=0A=
hSurfaceDC =3D front->hDC;=0A=
=0A=
- hDisplayWnd =3D front->resource.wineD3DDevice->ddraw_window;=0A=
+ hDisplayWnd =3D This->win_handle;=0A=
hDisplayDC =3D GetDCEx(hDisplayWnd, 0, =
DCX_CLIPSIBLINGS|DCX_CACHE);=0A=
if(rc) {=0A=
TRACE(" copying rect (%d,%d)->(%d,%d), offset (%d,%d)\n",=0A=
diff --git a/dlls/wined3d/wined3d_private.h =
b/dlls/wined3d/wined3d_private.h=0A=
index ee1e1e8..6f14790 100644=0A=
--- a/dlls/wined3d/wined3d_private.h=0A=
+++ b/dlls/wined3d/wined3d_private.h=0A=
@@ -920,7 +920,6 @@ struct IWineD3DDeviceImpl=0A=
BOOL softwareVertexProcessing;=0A=
=0A=
/* DirectDraw stuff */=0A=
- HWND ddraw_window;=0A=
DWORD ddraw_width, ddraw_height;=0A=
WINED3DFORMAT ddraw_format;=0A=
=0A=
-- =0A=
1.5.4.5=0A=
=0A=
------=_NextPart_000_000D_01C90123.D9700490--
More information about the wine-patches
mailing list