Roderick Colenbrander : wined3d: Redownload the surface data in case of a palette change. This fixes a lot of redrawing problems in Red Alert.

Alexandre Julliard julliard at winehq.org
Wed Feb 6 07:27:47 CST 2008


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

Author: Roderick Colenbrander <thunderbird2k at gmx.net>
Date:   Tue Feb  5 13:25:18 2008 +0100

wined3d: Redownload the surface data in case of a palette change. This fixes a lot of redrawing problems in Red Alert.

---

 dlls/wined3d/surface_base.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/surface_base.c b/dlls/wined3d/surface_base.c
index 8a6f546..d733852 100644
--- a/dlls/wined3d/surface_base.c
+++ b/dlls/wined3d/surface_base.c
@@ -297,8 +297,9 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_RealizePalette(IWineD3DSurface *iface) {
     if(This->resource.format == WINED3DFMT_P8 ||
        This->resource.format == WINED3DFMT_A8P8)
     {
-        if(!This->Flags & SFLAG_INSYSMEM) {
-            FIXME("Palette changed with surface that does not have an up to date system memory copy\n");
+        if(!(This->Flags & SFLAG_INSYSMEM)) {
+            TRACE("Palette changed with surface that does not have an up to date system memory copy\n");
+            IWineD3DSurface_LoadLocation(iface, SFLAG_INSYSMEM, NULL);
         }
         TRACE("Dirtifying surface\n");
         IWineD3DSurface_ModifyLocation(iface, SFLAG_INSYSMEM, TRUE);




More information about the wine-cvs mailing list