=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: ddraw: Pass correct box when mapping system memory vertex buffers.

Alexandre Julliard julliard at winehq.org
Thu Jan 31 14:50:13 CST 2019


Module: wine
Branch: master
Commit: 445b97b2a26d9d4d9cf9fcbb9fa7e15bb068fe20
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=445b97b2a26d9d4d9cf9fcbb9fa7e15bb068fe20

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Thu Jan 31 18:29:43 2019 +0330

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

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>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 af9f28d..d2f11c1 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;




More information about the wine-cvs mailing list