Stefan Dösinger : wined3d: Swap the SFLAG_DIBSECTION flag when swaping hdc and memory.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Feb 14 09:25:37 CST 2007


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Tue Feb 13 20:25:48 2007 +0100

wined3d: Swap the SFLAG_DIBSECTION flag when swaping hdc and memory.

---

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

diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index 00f36de..52271df 100644
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -305,9 +305,15 @@ static HRESULT WINAPI IWineD3DSwapChainImpl_Present(IWineD3DSwapChain *iface, CO
         /* Flip the DIBsection */
         {
             HBITMAP tmp;
+            BOOL hasDib = front->Flags & SFLAG_DIBSECTION;
             tmp = front->dib.DIBsection;
             front->dib.DIBsection = back->dib.DIBsection;
             back->dib.DIBsection = tmp;
+
+            if(back->Flags & SFLAG_DIBSECTION) front->Flags |= SFLAG_DIBSECTION;
+            else front->Flags &= ~SFLAG_DIBSECTION;
+            if(hasDib) back->Flags |= SFLAG_DIBSECTION;
+            else back->Flags &= ~SFLAG_DIBSECTION;
         }
 
         /* Flip the surface data */




More information about the wine-cvs mailing list