From: Jeff Smith whydoubt@gmail.com
--- dlls/ddraw/executebuffer.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/dlls/ddraw/executebuffer.c b/dlls/ddraw/executebuffer.c index 3dfc0832deb..0d84590f4ac 100644 --- a/dlls/ddraw/executebuffer.c +++ b/dlls/ddraw/executebuffer.c @@ -302,17 +302,13 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct d3d
box.right = box.left + vertex_size; if (FAILED(hr = wined3d_resource_map(wined3d_buffer_get_resource(buffer->dst_vertex_buffer), - 0, &vert_map_desc, &box, WINED3D_MAP_WRITE))) - { + 0, &vert_map_desc, &box, WINED3D_MAP_READ))) return hr; - } - else - { - /* Copy vert data into stack array */ - verts[j] = *((D3DTLVERTEX*)vert_map_desc.data);
- wined3d_resource_unmap(wined3d_buffer_get_resource(buffer->dst_vertex_buffer), 0); - } + /* Copy vert data into stack array */ + verts[j] = *((D3DTLVERTEX*)vert_map_desc.data); + + wined3d_resource_unmap(wined3d_buffer_get_resource(buffer->dst_vertex_buffer), 0); }
/* Use vertices acquired above to test for clicking */ @@ -801,7 +797,7 @@ static HRESULT WINAPI d3d_execute_buffer_SetExecuteData(IDirect3DExecuteBuffer *
desc.byte_width = new_size * sizeof(D3DTLVERTEX); desc.usage = WINED3DUSAGE_STATICDECL; - desc.access = WINED3D_RESOURCE_ACCESS_GPU | WINED3D_RESOURCE_ACCESS_MAP_W; + desc.access = WINED3D_RESOURCE_ACCESS_GPU | WINED3D_RESOURCE_ACCESS_MAP_R | WINED3D_RESOURCE_ACCESS_MAP_W;
if (FAILED(hr = wined3d_buffer_create(buffer->d3ddev->wined3d_device, &desc, NULL, NULL, &ddraw_null_wined3d_parent_ops, &dst_buffer)))