Stefan Dösinger : ddraw: Convert VB lock flags to wined3d flags.

Alexandre Julliard julliard at winehq.org
Fri Jan 29 10:56:35 CST 2010


Module: wine
Branch: master
Commit: a9f969094c4e3c03d0d31704aa8ab7097a3786ba
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a9f969094c4e3c03d0d31704aa8ab7097a3786ba

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Wed Jan 27 23:29:34 2010 +0100

ddraw: Convert VB lock flags to wined3d flags.

---

 dlls/ddraw/vertexbuffer.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/dlls/ddraw/vertexbuffer.c b/dlls/ddraw/vertexbuffer.c
index df7528b..f16cf12 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;
 }




More information about the wine-cvs mailing list