[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