Matteo Bruni : wined3d: Set depth textures dirty after modifying the underlying surface.

Alexandre Julliard julliard at winehq.org
Fri Jan 13 11:44:29 CST 2012


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

Author: Matteo Bruni <mbruni at codeweavers.com>
Date:   Thu Jan 12 17:05:18 2012 +0100

wined3d: Set depth textures dirty after modifying the underlying surface.

---

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

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index bf379f1..64e8646 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -5578,6 +5578,16 @@ void surface_modify_ds_location(struct wined3d_surface *surface,
     if (!(surface->rb_multisample))
         location &= ~SFLAG_INRB_MULTISAMPLE;
 
+    if (((surface->flags & SFLAG_INTEXTURE) && !(location & SFLAG_INTEXTURE))
+            || (!(surface->flags & SFLAG_INTEXTURE) && (location & SFLAG_INTEXTURE)))
+    {
+        if (surface->container.type == WINED3D_CONTAINER_TEXTURE)
+        {
+            TRACE("Passing to container.\n");
+            wined3d_texture_set_dirty(surface->container.u.texture, TRUE);
+        }
+    }
+
     surface->ds_current_size.cx = w;
     surface->ds_current_size.cy = h;
     surface->flags &= ~SFLAG_LOCATIONS;




More information about the wine-cvs mailing list