From a9f969094c4e3c03d0d31704aa8ab7097a3786ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Wed, 27 Jan 2010 23:29:34 +0100 Subject: [PATCH] ddraw: Convert VB lock flags to wined3d flags. --- dlls/ddraw/vertexbuffer.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dlls/ddraw/vertexbuffer.c b/dlls/ddraw/vertexbuffer.c index df7528b45cb..f16cf124392 100644 --- a/dlls/ddraw/vertexbuffer.c +++ b/dlls/ddraw/vertexbuffer.c @@ -236,8 +236,17 @@ IDirect3DVertexBufferImpl_Lock(IDirect3DVertexBuffer7 *iface, IDirect3DVertexBufferImpl *This = (IDirect3DVertexBufferImpl *)iface; WINED3DBUFFER_DESC Desc; HRESULT hr; + DWORD wined3d_flags = 0; TRACE("(%p)->(%08x,%p,%p)\n", This, Flags, Data, Size); + /* Writeonly: Pointless. Event: Unsupported by native according to the sdk + * nosyslock: Not applicable + */ + if(!(Flags & DDLOCK_WAIT)) wined3d_flags |= WINED3DLOCK_DONOTWAIT; + if(Flags & DDLOCK_READONLY) wined3d_flags |= WINED3DLOCK_READONLY; + if(Flags & DDLOCK_NOOVERWRITE) wined3d_flags |= WINED3DLOCK_NOOVERWRITE; + if(Flags & DDLOCK_DISCARDCONTENTS) wined3d_flags |= WINED3DLOCK_DISCARD; + EnterCriticalSection(&ddraw_cs); if(Size) { @@ -253,7 +262,7 @@ IDirect3DVertexBufferImpl_Lock(IDirect3DVertexBuffer7 *iface, } hr = IWineD3DBuffer_Map(This->wineD3DVertexBuffer, 0 /* OffsetToLock */, - 0 /* SizeToLock, 0 == Full lock */, (BYTE **)Data, Flags); + 0 /* SizeToLock, 0 == Full lock */, (BYTE **)Data, wined3d_flags); LeaveCriticalSection(&ddraw_cs); return hr; }