Stefan Dösinger : wined3d: Don' t mark SFLAG_INTEXTURE up to date with fbo stretchrect.

Alexandre Julliard julliard at winehq.org
Wed Sep 23 11:03:15 CDT 2009


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Sat Sep  5 22:32:51 2009 +0200

wined3d: Don't mark SFLAG_INTEXTURE up to date with fbo stretchrect.

FBO stretchrect marks SFLAG_INDRAWABLE up to date, which currently
also marks SFLAG_INTEXTURE up to date. However, this will change when
we enable rendering to the srgb copy, in which case the drawable could
be equal to the srgb copy, not the rgb copy.

---

 dlls/wined3d/surface.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 4e4ac33..7221ef0 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3098,6 +3098,11 @@ static inline void fb_copy_to_texture_direct(IWineD3DSurfaceImpl *This, IWineD3D
     checkGLcall("glCopyTexSubImage2D");
 
     LEAVE_GL();
+
+    /* The texture is now most up to date - If the surface is a render target and has a drawable, this
+     * path is never entered
+     */
+    IWineD3DSurface_ModifyLocation((IWineD3DSurface *) This, SFLAG_INTEXTURE, TRUE);
 }
 
 /* Uses the hardware to stretch and flip the image */
@@ -3345,6 +3350,11 @@ static inline void fb_copy_to_texture_hwstretch(IWineD3DSurfaceImpl *This, IWine
     }
 
     LEAVE_GL();
+
+    /* The texture is now most up to date - If the surface is a render target and has a drawable, this
+     * path is never entered
+     */
+    IWineD3DSurface_ModifyLocation((IWineD3DSurface *) This, SFLAG_INTEXTURE, TRUE);
 }
 
 /* Not called from the VTable */
@@ -3615,10 +3625,6 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, const
         } else {
             This->Flags &= ~SFLAG_INSYSMEM;
         }
-        /* The texture is now most up to date - If the surface is a render target and has a drawable, this
-         * path is never entered
-         */
-        IWineD3DSurface_ModifyLocation((IWineD3DSurface *) This, SFLAG_INTEXTURE, TRUE);
 
         return WINED3D_OK;
     } else if(Src) {




More information about the wine-cvs mailing list