[D3D 62] Reimplements SwapTextureHandles

Christian Costa titan.costa at wanadoo.fr
Sun Dec 29 02:09:34 CST 2002


This path reimplements SwapTextureHandles that have
been lost during the reorganization of the D3D code.

Modified files :
dlls/ddraw/d3ddevice/main.c
dlls/ddraw/d3ddevice/main.h
dlls/ddraw/d3ddevice/mesa.c

Changelog :
Reimplements SwapTextureHandles.

Christian Costa   titan.costa at wanadoo.fr

-------------- next part --------------
diff -u -r ../../winebase/wine/dlls/ddraw/d3ddevice/main.c dlls/ddraw/d3ddevice/main.c
--- ../../winebase/wine/dlls/ddraw/d3ddevice/main.c	Sun Dec 29 07:50:50 2002
+++ dlls/ddraw/d3ddevice/main.c	Sun Dec 29 08:38:53 2002
@@ -901,12 +901,20 @@
 }
 
 HRESULT WINAPI
-Main_IDirect3DDeviceImpl_2_SwapTextureHandles(LPDIRECT3DDEVICE2 iface,
-                                              LPDIRECT3DTEXTURE2 lpD3DTex1,
-                                              LPDIRECT3DTEXTURE2 lpD3DTex2)
+Main_IDirect3DDeviceImpl_2_1T_SwapTextureHandles(LPDIRECT3DDEVICE2 iface,
+                                                 LPDIRECT3DTEXTURE2 lpD3DTex1,
+                                                 LPDIRECT3DTEXTURE2 lpD3DTex2)
 {
     ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
-    FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DTex1, lpD3DTex2);
+    IDirectDrawSurfaceImpl tmp,*surf1,*surf2;
+    TRACE("(%p/%p)->(%p,%p):\n", This, iface, lpD3DTex1, lpD3DTex2);
+
+    surf1 = ICOM_OBJECT(IDirectDrawSurfaceImpl,IDirect3DTexture2,lpD3DTex1);
+    surf2 = ICOM_OBJECT(IDirectDrawSurfaceImpl,IDirect3DTexture2,lpD3DTex2);
+    tmp = *surf1;
+    *surf1 = *surf2;
+    *surf2 = tmp;
+    
     return DD_OK;
 }
 
@@ -995,16 +1003,6 @@
 }
 
 HRESULT WINAPI
-Main_IDirect3DDeviceImpl_1_SwapTextureHandles(LPDIRECT3DDEVICE iface,
-                                              LPDIRECT3DTEXTURE lpD3Dtex1,
-                                              LPDIRECT3DTEXTURE lpD3DTex2)
-{
-    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
-    FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3Dtex1, lpD3DTex2);
-    return DD_OK;
-}
-
-HRESULT WINAPI
 Main_IDirect3DDeviceImpl_1_CreateExecuteBuffer(LPDIRECT3DDEVICE iface,
                                                LPD3DEXECUTEBUFFERDESC lpDesc,
                                                LPDIRECT3DEXECUTEBUFFER* lplpDirect3DExecuteBuffer,
@@ -1667,6 +1665,17 @@
     return IDirect3DDevice3_GetCaps(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
                                     lpD3DHWDevDesc,
                                     lpD3DHELDevDesc);
+}
+
+HRESULT WINAPI
+Thunk_IDirect3DDeviceImpl_1_SwapTextureHandles(LPDIRECT3DDEVICE iface,
+                                              LPDIRECT3DTEXTURE lpD3DTex1,
+                                              LPDIRECT3DTEXTURE lpD3DTex2)
+{
+    TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice2 interface.\n", iface, lpD3DTex1, lpD3DTex2);
+    return IDirect3DDevice2_SwapTextureHandles(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice2, iface),
+                                               COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirect3DTexture, IDirect3DTexture2, lpD3DTex1),
+                                               COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirect3DTexture, IDirect3DTexture2, lpD3DTex2));
 }
 
 HRESULT WINAPI
Only in dlls/ddraw/d3ddevice: main.c~
diff -u -r ../../winebase/wine/dlls/ddraw/d3ddevice/main.h dlls/ddraw/d3ddevice/main.h
--- ../../winebase/wine/dlls/ddraw/d3ddevice/main.h	Thu Dec 26 12:48:38 2002
+++ dlls/ddraw/d3ddevice/main.h	Sun Dec 29 08:42:03 2002
@@ -345,9 +345,9 @@
                                             DWORD dwLightState);
 
 HRESULT WINAPI
-Main_IDirect3DDeviceImpl_2_SwapTextureHandles(LPDIRECT3DDEVICE2 iface,
-                                              LPDIRECT3DTEXTURE2 lpD3DTex1,
-                                              LPDIRECT3DTEXTURE2 lpD3DTex2);
+Main_IDirect3DDeviceImpl_2_1T_SwapTextureHandles(LPDIRECT3DDEVICE2 iface,
+                                                 LPDIRECT3DTEXTURE2 lpD3DTex1,
+                                                 LPDIRECT3DTEXTURE2 lpD3DTex2);
 
 HRESULT WINAPI
 Main_IDirect3DDeviceImpl_2_1T_EnumTextureFormats(LPDIRECT3DDEVICE2 iface,
@@ -393,11 +393,6 @@
                                       LPD3DDEVICEDESC lpD3DDVDesc);
 
 HRESULT WINAPI
-Main_IDirect3DDeviceImpl_1_SwapTextureHandles(LPDIRECT3DDEVICE iface,
-                                              LPDIRECT3DTEXTURE lpD3Dtex1,
-                                              LPDIRECT3DTEXTURE lpD3DTex2);
-
-HRESULT WINAPI
 Main_IDirect3DDeviceImpl_1_CreateExecuteBuffer(LPDIRECT3DDEVICE iface,
                                                LPD3DEXECUTEBUFFERDESC lpDesc,
                                                LPDIRECT3DEXECUTEBUFFER* lplpDirect3DExecuteBuffer,
@@ -678,6 +673,11 @@
 Thunk_IDirect3DDeviceImpl_1_GetCaps(LPDIRECT3DDEVICE iface,
                                     LPD3DDEVICEDESC lpD3DHWDevDesc,
                                     LPD3DDEVICEDESC lpD3DHELDevDesc);
+
+HRESULT WINAPI
+Thunk_IDirect3DDeviceImpl_1_SwapTextureHandles(LPDIRECT3DDEVICE iface,
+                                               LPDIRECT3DTEXTURE lpD3Dtex1,
+                                               LPDIRECT3DTEXTURE lpD3DTex2);
 
 HRESULT WINAPI
 Thunk_IDirect3DDeviceImpl_2_GetStats(LPDIRECT3DDEVICE2 iface,
diff -u -r ../../winebase/wine/dlls/ddraw/d3ddevice/mesa.c dlls/ddraw/d3ddevice/mesa.c
--- ../../winebase/wine/dlls/ddraw/d3ddevice/mesa.c	Sun Dec 29 07:50:58 2002
+++ dlls/ddraw/d3ddevice/mesa.c	Sun Dec 29 08:48:19 2002
@@ -1697,7 +1697,7 @@
     XCAST(AddRef) Thunk_IDirect3DDeviceImpl_2_AddRef,
     XCAST(Release) Thunk_IDirect3DDeviceImpl_2_Release,
     XCAST(GetCaps) Thunk_IDirect3DDeviceImpl_2_GetCaps,
-    XCAST(SwapTextureHandles) Main_IDirect3DDeviceImpl_2_SwapTextureHandles,
+    XCAST(SwapTextureHandles) Main_IDirect3DDeviceImpl_2_1T_SwapTextureHandles,
     XCAST(GetStats) Thunk_IDirect3DDeviceImpl_2_GetStats,
     XCAST(AddViewport) Thunk_IDirect3DDeviceImpl_2_AddViewport,
     XCAST(DeleteViewport) Thunk_IDirect3DDeviceImpl_2_DeleteViewport,
@@ -1747,7 +1747,7 @@
     XCAST(Release) Thunk_IDirect3DDeviceImpl_1_Release,
     XCAST(Initialize) Main_IDirect3DDeviceImpl_1_Initialize,
     XCAST(GetCaps) Thunk_IDirect3DDeviceImpl_1_GetCaps,
-    XCAST(SwapTextureHandles) Main_IDirect3DDeviceImpl_1_SwapTextureHandles,
+    XCAST(SwapTextureHandles) Thunk_IDirect3DDeviceImpl_1_SwapTextureHandles,
     XCAST(CreateExecuteBuffer) GL_IDirect3DDeviceImpl_1_CreateExecuteBuffer,
     XCAST(GetStats) Thunk_IDirect3DDeviceImpl_1_GetStats,
     XCAST(Execute) Main_IDirect3DDeviceImpl_1_Execute,



More information about the wine-patches mailing list