[PATCH 01/11] ddraw: Fix setting current viewport for ddraw1.
Paul Gofman
gofmanp at gmail.com
Wed May 15 10:06:48 CDT 2019
Signed-off-by: Paul Gofman <gofmanp at 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));
--
2.21.0
More information about the wine-devel
mailing list