[PATCH] ddraw: Pass correct box when mapping system memory vertex buffers.

Henri Verbeet hverbeet at codeweavers.com
Thu Jan 31 08:41:43 CST 2019


From: Józef Kucia <jkucia at codeweavers.com>

This fixes a regression introduced by commit
5a8e430b96ab429a85f82f26ba9d2de4729954c2.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46536
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 dlls/ddraw/device.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 4b58b75f3c2..c9742b205d4 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -4410,6 +4410,8 @@ static HRESULT d3d_device7_DrawIndexedPrimitiveVB(IDirect3DDevice7 *iface,
     {
         TRACE("Drawing from D3DVBCAPS_SYSTEMMEMORY vertex buffer, forwarding to DrawIndexedPrimitive().\n");
         wined3d_mutex_lock();
+        wined3d_box.left = start_vertex * stride;
+        wined3d_box.right = wined3d_box.left + vertex_count * stride;
         wined3d_resource = wined3d_buffer_get_resource(vb_impl->wined3d_buffer);
         if (FAILED(hr = wined3d_resource_map(wined3d_resource, 0, &wined3d_map_desc,
                 &wined3d_box, WINED3D_MAP_READ)))
@@ -4417,8 +4419,8 @@ static HRESULT d3d_device7_DrawIndexedPrimitiveVB(IDirect3DDevice7 *iface,
             wined3d_mutex_unlock();
             return D3DERR_VERTEXBUFFERLOCKED;
         }
-        hr = d3d_device7_DrawIndexedPrimitive(iface, primitive_type, vb_impl->fvf, wined3d_map_desc.data,
-                start_vertex + vertex_count, indices, index_count, flags);
+        hr = d3d_device7_DrawIndexedPrimitive(iface, primitive_type, vb_impl->fvf,
+                wined3d_map_desc.data, vertex_count, indices, index_count, flags);
         wined3d_resource_unmap(wined3d_resource, 0);
         wined3d_mutex_unlock();
         return hr;
-- 
2.11.0




More information about the wine-devel mailing list