Module: wine Branch: master Commit: 8bc7139b6fe27ba8fe80ae3414dee436d5b92f6e URL: https://source.winehq.org/git/wine.git/?a=commit;h=8bc7139b6fe27ba8fe80ae341...
Author: Paul Gofman gofmanp@gmail.com Date: Wed May 15 18:06:48 2019 +0300
ddraw: Fix setting current viewport for ddraw1.
Signed-off-by: Paul Gofman gofmanp@gmail.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 19f21a8..7137f78 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 18e5854..ade56bb 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 f9082dc..637c2bd 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));