From cfb07e711476b6278fc2eb6d3af3365b5d43a9c9 Mon Sep 17 00:00:00 2001 From: "H. Verbeet" Date: Wed, 1 Aug 2007 22:48:42 +0200 Subject: [PATCH] wined3d: Set SFLAG_INSYSMEM when WINED3DLOCK_DISCARD is passed to IWineD3DSurfaceImpl_LockRect. --- dlls/wined3d/surface.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 75a2d26fdd6..56ce845cdfc 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -763,8 +763,14 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_LockRect(IWineD3DSurface *iface, WINED } } - if((Flags & WINED3DLOCK_DISCARD) || (This->Flags & SFLAG_INSYSMEM)) { - TRACE("WINED3DLOCK_DISCARD flag passed, or local copy is up to date, not downloading data\n"); + if (Flags & WINED3DLOCK_DISCARD) { + /* Set SFLAG_INSYSMEM, so we'll never try to download the data from the texture. */ + TRACE("WINED3DLOCK_DISCARD flag passed, marking local copy as up to date\n"); + This->Flags |= SFLAG_INSYSMEM; + } + + if (This->Flags & SFLAG_INSYSMEM) { + TRACE("Local copy is up to date, not downloading data\n"); goto lock_end; }