diff --git a/dlls/ddraw/d3ddevice/main.c b/dlls/ddraw/d3ddevice/main.c index 82d95a718b41602bdd726a00aaa6c5f12cf7a816..f57d5538ec5e4f96045f86ef502ff57434ccbde9 100644 --- a/dlls/ddraw/d3ddevice/main.c +++ b/dlls/ddraw/d3ddevice/main.c @@ -81,10 +81,15 @@ HRESULT WINAPI IDirect3DDevice2Impl_GetCaps( HRESULT WINAPI IDirect3DDevice2Impl_SwapTextureHandles( - LPDIRECT3DDEVICE2 iface,LPDIRECT3DTEXTURE2 lptex1,LPDIRECT3DTEXTURE2 lptex2 + LPDIRECT3DDEVICE2 iface,LPDIRECT3DTEXTURE2 lpD3DTex1,LPDIRECT3DTEXTURE2 lpD3DTex2 ) { ICOM_THIS(IDirect3DDevice2Impl,iface); - FIXME("(%p)->(%p,%p): stub\n", This, lptex1, lptex2); + IDirect3DTexture2Impl tmp; + TRACE("(%p)->(%p,%p)\n", This, lpD3DTex1, lpD3DTex2); + + tmp = *(IDirect3DTexture2Impl*)lpD3DTex1; + *(IDirect3DTexture2Impl*)lpD3DTex1 = *(IDirect3DTexture2Impl*)lpD3DTex2; + *(IDirect3DTexture2Impl*)lpD3DTex2 = tmp; return DD_OK; } @@ -471,7 +476,12 @@ HRESULT WINAPI IDirect3DDeviceImpl_SwapTextureHandles( LPDIRECT3DTEXTURE lpD3DTex2 ) { ICOM_THIS(IDirect3DDeviceImpl,iface); - TRACE("(%p)->(%p,%p): stub\n", This, lpD3DTex1, lpD3DTex2); + IDirect3DTexture2Impl tmp; + TRACE("(%p)->(%p,%p)\n", This, lpD3DTex1, lpD3DTex2); + + tmp = *(IDirect3DTexture2Impl*)lpD3DTex1; + *(IDirect3DTexture2Impl*)lpD3DTex1 = *(IDirect3DTexture2Impl*)lpD3DTex2; + *(IDirect3DTexture2Impl*)lpD3DTex2 = tmp; return DD_OK; }