[4/8] WineD3D: Catch NOP SetStreamSource changes

Stefan Dösinger stefan at codeweavers.com
Wed Jan 3 17:08:20 CST 2007


From 3583b152c9d30199564429f2f6b0646836b8062b Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Stefan_D=C3=B6singer?= <stefan at imac.local>
Date: Wed, 3 Jan 2007 17:57:53 +0100
Subject: [PATCH] WineD3D: Catch nop SetStreamSource calls

---
 dlls/wined3d/device.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index a98ddb4..a0c79c4 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -2211,6 +2211,15 @@ static HRESULT WINAPI IWineD3DDeviceImpl
 
     This->updateStateBlock->changed.streamSource[StreamNumber] = TRUE;
     This->updateStateBlock->set.streamSource[StreamNumber]     = TRUE;
+
+    if(oldSrc == pStreamData &&
+       This->updateStateBlock->streamStride[StreamNumber] == Stride &&
+       This->updateStateBlock->streamOffset[StreamNumber] == OffsetInBytes &&
+       This->updateStateBlock->streamFlags[StreamNumber] == streamFlags) {
+       TRACE("Application is setting the old values over, nothing to do\n");
+       return WINED3D_OK;
+    }
+    
     This->updateStateBlock->streamSource[StreamNumber]         = pStreamData;
     if (pStreamData) {
         This->updateStateBlock->streamStride[StreamNumber]     = Stride;
-- 
1.4.2.4



More information about the wine-patches mailing list