Signed-off-by: Paul Gofman gofmanp@gmail.com --- dlls/ddraw/ddraw_private.h | 2 +- dlls/ddraw/device.c | 6 +++++- dlls/ddraw/executebuffer.c | 13 +------------ 3 files changed, 7 insertions(+), 14 deletions(-)
diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h index 19f21a8923..7137f78dad 100644 --- a/dlls/ddraw/ddraw_private.h +++ b/dlls/ddraw/ddraw_private.h @@ -555,7 +555,7 @@ struct d3d_execute_buffer *unsafe_impl_from_IDirect3DExecuteBuffer(IDirect3DExec
/* The execute function */ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *execute_buffer, - struct d3d_device *device, struct d3d_viewport *viewport) DECLSPEC_HIDDEN; + struct d3d_device *device) DECLSPEC_HIDDEN;
/***************************************************************************** * IDirect3DVertexBuffer diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c index 18e585407c..ade56bbc9e 100644 --- a/dlls/ddraw/device.c +++ b/dlls/ddraw/device.c @@ -712,9 +712,13 @@ static HRESULT WINAPI d3d_device1_Execute(IDirect3DDevice *iface, if(!buffer) return DDERR_INVALIDPARAMS;
+ if (FAILED(hr = IDirect3DDevice3_SetCurrentViewport + (&device->IDirect3DDevice3_iface, &viewport_impl->IDirect3DViewport3_iface))) + return hr; + /* Execute... */ wined3d_mutex_lock(); - hr = d3d_execute_buffer_execute(buffer, device, viewport_impl); + hr = d3d_execute_buffer_execute(buffer, device); wined3d_mutex_unlock();
return hr; diff --git a/dlls/ddraw/executebuffer.c b/dlls/ddraw/executebuffer.c index f9082dc028..637c2bdc5f 100644 --- a/dlls/ddraw/executebuffer.c +++ b/dlls/ddraw/executebuffer.c @@ -48,8 +48,7 @@ static void _dump_D3DEXECUTEBUFFERDESC(const D3DEXECUTEBUFFERDESC *lpDesc) { TRACE("lpData : %p\n", lpDesc->lpData); }
-HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, - struct d3d_device *device, struct d3d_viewport *viewport) +HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct d3d_device *device) { DWORD is = buffer->data.dwInstructionOffset; char *instr = (char *)buffer->desc.lpData + is; @@ -58,16 +57,6 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct wined3d_box box = {0}; HRESULT hr;
- if (viewport->active_device != device) - { - WARN("Viewport %p active device is %p.\n", - viewport, viewport->active_device); - return DDERR_INVALIDPARAMS; - } - - /* Activate the viewport */ - viewport_activate(viewport, FALSE); - TRACE("ExecuteData :\n"); if (TRACE_ON(ddraw)) _dump_executedata(&(buffer->data));