ddraw: We can't render to the desktop window either.

This commit is contained in:
Henri Verbeet 2011-11-17 20:11:40 +01:00 committed by Alexandre Julliard
parent 8dd50e9a20
commit 8e6f5c34a2
3 changed files with 11 additions and 4 deletions

View file

@ -452,7 +452,7 @@ void ddraw_destroy_swapchain(IDirectDrawImpl *ddraw)
wined3d_device_uninit_gdi(ddraw->wined3d_device);
}
ddraw->swapchain_window = NULL;
ddraw_set_swapchain_window(ddraw, NULL);
TRACE("Swapchain destroyed.\n");
}
@ -2655,7 +2655,7 @@ static HRESULT ddraw_create_swapchain(IDirectDrawImpl *ddraw, IDirectDrawSurface
}
if (SUCCEEDED(hr))
ddraw->swapchain_window = ddraw->dest_window;
ddraw_set_swapchain_window(ddraw, ddraw->dest_window);
return hr;
}

View file

@ -128,6 +128,13 @@ struct IDirectDrawImpl
HRESULT ddraw_init(IDirectDrawImpl *ddraw, WINED3DDEVTYPE device_type) DECLSPEC_HIDDEN;
void ddraw_destroy_swapchain(IDirectDrawImpl *ddraw) DECLSPEC_HIDDEN;
static inline void ddraw_set_swapchain_window(struct IDirectDrawImpl *ddraw, HWND window)
{
if (window == GetDesktopWindow())
window = NULL;
ddraw->swapchain_window = window;
}
/* Utility functions */
void DDRAW_Convert_DDSCAPS_1_To_2(const DDSCAPS *pIn, DDSCAPS2 *pOut) DECLSPEC_HIDDEN;
void DDRAW_Convert_DDDEVICEIDENTIFIER_2_To_1(const DDDEVICEIDENTIFIER2 *pIn, DDDEVICEIDENTIFIER *pOut) DECLSPEC_HIDDEN;

View file

@ -3952,12 +3952,12 @@ static HRESULT WINAPI ddraw_surface7_SetClipper(IDirectDrawSurface7 *iface,
if (clipWindow)
{
wined3d_swapchain_set_window(This->ddraw->wined3d_swapchain, clipWindow);
This->ddraw->swapchain_window = clipWindow;
ddraw_set_swapchain_window(This->ddraw, clipWindow);
}
else
{
wined3d_swapchain_set_window(This->ddraw->wined3d_swapchain, This->ddraw->d3d_window);
This->ddraw->swapchain_window = This->ddraw->dest_window;
ddraw_set_swapchain_window(This->ddraw, This->ddraw->dest_window);
}
}