Commit 74345201 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

ddraw: Move setting ddraw->d3d_target out of ddraw_attach_d3d_device().

parent 08e8b0a7
...@@ -2522,26 +2522,13 @@ CreateAdditionalSurfaces(IDirectDrawImpl *This, ...@@ -2522,26 +2522,13 @@ CreateAdditionalSurfaces(IDirectDrawImpl *This,
return DD_OK; return DD_OK;
} }
/***************************************************************************** static HRESULT ddraw_attach_d3d_device(IDirectDrawImpl *ddraw,
* ddraw_attach_d3d_device
*
* Initializes the D3D capabilities of WineD3D
*
* Params:
* primary: The primary surface for D3D
*
* Returns
* DD_OK on success,
* DDERR_* otherwise
*
*****************************************************************************/
static HRESULT ddraw_attach_d3d_device(IDirectDrawImpl *ddraw, IDirectDrawSurfaceImpl *primary,
WINED3DPRESENT_PARAMETERS *presentation_parameters) WINED3DPRESENT_PARAMETERS *presentation_parameters)
{ {
HWND window = presentation_parameters->hDeviceWindow; HWND window = presentation_parameters->hDeviceWindow;
HRESULT hr; HRESULT hr;
TRACE("ddraw %p, primary %p.\n", ddraw, primary); TRACE("ddraw %p.\n", ddraw);
if (!window || window == GetDesktopWindow()) if (!window || window == GetDesktopWindow())
{ {
...@@ -2565,9 +2552,6 @@ static HRESULT ddraw_attach_d3d_device(IDirectDrawImpl *ddraw, IDirectDrawSurfac ...@@ -2565,9 +2552,6 @@ static HRESULT ddraw_attach_d3d_device(IDirectDrawImpl *ddraw, IDirectDrawSurfac
} }
ddraw->d3d_window = window; ddraw->d3d_window = window;
/* Store the future Render Target surface */
ddraw->d3d_target = primary;
/* Set this NOW, otherwise creating the depth stencil surface will cause a /* Set this NOW, otherwise creating the depth stencil surface will cause a
* recursive loop until ram or emulated video memory is full. */ * recursive loop until ram or emulated video memory is full. */
ddraw->d3d_initialized = TRUE; ddraw->d3d_initialized = TRUE;
...@@ -2597,7 +2581,6 @@ static HRESULT ddraw_attach_d3d_device(IDirectDrawImpl *ddraw, IDirectDrawSurfac ...@@ -2597,7 +2581,6 @@ static HRESULT ddraw_attach_d3d_device(IDirectDrawImpl *ddraw, IDirectDrawSurfac
static HRESULT ddraw_create_swapchain(IDirectDrawImpl *ddraw, IDirectDrawSurfaceImpl *surface) static HRESULT ddraw_create_swapchain(IDirectDrawImpl *ddraw, IDirectDrawSurfaceImpl *surface)
{ {
WINED3DPRESENT_PARAMETERS presentation_parameters; WINED3DPRESENT_PARAMETERS presentation_parameters;
IDirectDrawSurfaceImpl *target = surface;
struct wined3d_display_mode mode; struct wined3d_display_mode mode;
HRESULT hr = WINED3D_OK; HRESULT hr = WINED3D_OK;
...@@ -2612,12 +2595,6 @@ static HRESULT ddraw_create_swapchain(IDirectDrawImpl *ddraw, IDirectDrawSurface ...@@ -2612,12 +2595,6 @@ static HRESULT ddraw_create_swapchain(IDirectDrawImpl *ddraw, IDirectDrawSurface
return hr; return hr;
} }
if (ddraw->primary)
{
TRACE("Using primary %p.\n", ddraw->primary);
target = ddraw->primary;
}
memset(&presentation_parameters, 0, sizeof(presentation_parameters)); memset(&presentation_parameters, 0, sizeof(presentation_parameters));
presentation_parameters.BackBufferWidth = mode.width; presentation_parameters.BackBufferWidth = mode.width;
presentation_parameters.BackBufferHeight = mode.height; presentation_parameters.BackBufferHeight = mode.height;
...@@ -2635,8 +2612,7 @@ static HRESULT ddraw_create_swapchain(IDirectDrawImpl *ddraw, IDirectDrawSurface ...@@ -2635,8 +2612,7 @@ static HRESULT ddraw_create_swapchain(IDirectDrawImpl *ddraw, IDirectDrawSurface
* target creation will cause the 3D init. */ * target creation will cause the 3D init. */
if (DefaultSurfaceType == SURFACE_OPENGL) if (DefaultSurfaceType == SURFACE_OPENGL)
{ {
TRACE("Attaching a D3DDevice, rendertarget = %p.\n", target); hr = ddraw_attach_d3d_device(ddraw, &presentation_parameters);
hr = ddraw_attach_d3d_device(ddraw, target, &presentation_parameters);
} }
else if (surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) else if (surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
{ {
...@@ -3061,6 +3037,9 @@ static HRESULT CreateSurface(IDirectDrawImpl *ddraw, DDSURFACEDESC2 *DDSD, ...@@ -3061,6 +3037,9 @@ static HRESULT CreateSurface(IDirectDrawImpl *ddraw, DDSURFACEDESC2 *DDSD,
wined3d_mutex_unlock(); wined3d_mutex_unlock();
return hr; return hr;
} }
if (DefaultSurfaceType == SURFACE_OPENGL)
ddraw->d3d_target = ddraw->primary ? ddraw->primary : object;
} }
if (desc2.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) if (desc2.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment