[PATCH] DDraw: Send the ddraw output to the clipper window, if =
Stefan Doesinger
stefan at codeweavers.com
Thu Aug 7 14:09:19 CDT 2008
any=0A=
=0A=
---=0A=
dlls/ddraw/ddraw.c | 2 +-=0A=
dlls/ddraw/surface.c | 17 +++++++++++++++++=0A=
2 files changed, 18 insertions(+), 1 deletions(-)=0A=
=0A=
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c=0A=
index 425503f..31dfd1d 100644=0A=
--- a/dlls/ddraw/ddraw.c=0A=
+++ b/dlls/ddraw/ddraw.c=0A=
@@ -3254,12 +3254,12 @@ IDirectDrawImpl_AttachD3DDevice(IDirectDrawImpl =
*This,=0A=
=0A=
ShowWindow(window, SW_HIDE); /* Just to be sure */=0A=
WARN("(%p) No window for the Direct3DDevice, created a hidden =
window. HWND=3D%p\n", This, window);=0A=
- This->d3d_window =3D window;=0A=
}=0A=
else=0A=
{=0A=
TRACE("(%p) Using existing window %p for Direct3D rendering\n", =
This, window);=0A=
}=0A=
+ This->d3d_window =3D window;=0A=
=0A=
/* Store the future Render Target surface */=0A=
This->d3d_target =3D primary;=0A=
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c=0A=
index b4129b3..664229b 100644=0A=
--- a/dlls/ddraw/surface.c=0A=
+++ b/dlls/ddraw/surface.c=0A=
@@ -2210,6 +2210,7 @@ =
IDirectDrawSurfaceImpl_SetClipper(IDirectDrawSurface7 *iface,=0A=
{=0A=
ICOM_THIS_FROM(IDirectDrawSurfaceImpl, IDirectDrawSurface7, iface);=0A=
IDirectDrawClipperImpl *oldClipper =3D This->clipper;=0A=
+ HWND clipWindow;=0A=
HRESULT hr;=0A=
TRACE("(%p)->(%p)\n",This,Clipper);=0A=
=0A=
@@ -2228,6 +2229,22 @@ =
IDirectDrawSurfaceImpl_SetClipper(IDirectDrawSurface7 *iface,=0A=
IDirectDrawClipper_Release(ICOM_INTERFACE(oldClipper, =
IDirectDrawClipper));=0A=
=0A=
hr =3D IWineD3DSurface_SetClipper(This->WineD3DSurface, =
This->clipper ? This->clipper->wineD3DClipper : NULL);=0A=
+=0A=
+ if(This->wineD3DSwapChain) {=0A=
+ clipWindow =3D NULL;=0A=
+ if(Clipper) {=0A=
+ IDirectDrawClipper_GetHWnd(Clipper, &clipWindow);=0A=
+ }=0A=
+=0A=
+ if(clipWindow) {=0A=
+ =
IWineD3DSwapChain_SetDestWindowOverride(This->wineD3DSwapChain,=0A=
+ clipWindow);=0A=
+ } else {=0A=
+ =
IWineD3DSwapChain_SetDestWindowOverride(This->wineD3DSwapChain,=0A=
+ =
This->ddraw->d3d_window);=0A=
+ }=0A=
+ }=0A=
+=0A=
LeaveCriticalSection(&ddraw_cs);=0A=
return hr;=0A=
}=0A=
-- =0A=
1.5.4.5=0A=
=0A=
------=_NextPart_000_0005_01C90123.CE8ADD20--
More information about the wine-patches
mailing list