Alexander Dorofeyev : wined3d: Add glFlush when clearing the front buffer in ClearSurface.

Alexandre Julliard julliard at winehq.org
Wed Sep 3 07:43:43 CDT 2008


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

Author: Alexander Dorofeyev <alexd4 at inbox.lv>
Date:   Sun Aug 31 17:05:26 2008 +0300

wined3d: Add glFlush when clearing the front buffer in ClearSurface.

---

 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 609b77f..2085b07 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -4995,6 +4995,7 @@ HRESULT IWineD3DDeviceImpl_ClearSurface(IWineD3DDeviceImpl *This,  IWineD3DSurfa
     WINED3DVIEWPORT *vp = &This->stateBlock->viewport;
     UINT drawable_width, drawable_height;
     IWineD3DSurfaceImpl *depth_stencil = (IWineD3DSurfaceImpl *) This->stencilBufferTarget;
+    IWineD3DSwapChainImpl *swapchain = NULL;
 
     /* When we're clearing parts of the drawable, make sure that the target surface is well up to date in the
      * drawable. After the clear we'll mark the drawable up to date, so we have to make sure that this is true
@@ -5164,6 +5165,14 @@ HRESULT IWineD3DDeviceImpl_ClearSurface(IWineD3DDeviceImpl *This,  IWineD3DSurfa
 
     LEAVE_GL();
 
+    IWineD3DSurface_GetContainer( (IWineD3DSurface *) target, &IID_IWineD3DSwapChain, (void **)&swapchain);
+    if (swapchain) {
+        if (target == (IWineD3DSurfaceImpl*) swapchain->frontBuffer) {
+            glFlush();
+        }
+        IWineD3DSwapChain_Release((IWineD3DSwapChain *) swapchain);
+    }
+
     return WINED3D_OK;
 }
 




More information about the wine-cvs mailing list