Ričardas Barkauskas : ddraw: Don' t allow setting palette on non root surfaces.

Alexandre Julliard julliard at winehq.org
Mon Aug 22 13:29:13 CDT 2011


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

Author: Ričardas Barkauskas <rbarkauskas at codeweavers.com>
Date:   Mon Aug  8 01:26:00 2011 +0300

ddraw: Don't allow setting palette on non root surfaces.

---

 dlls/ddraw/surface.c   |    5 +++++
 dlls/ddraw/tests/d3d.c |    2 +-
 2 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 2b06cb9..c6ae89b 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -4233,6 +4233,11 @@ static HRESULT WINAPI ddraw_surface7_SetPalette(IDirectDrawSurface7 *iface, IDir
         return DDERR_INVALIDPIXELFORMAT;
     }
 
+    if (!This->is_complex_root)
+    {
+        return DDERR_NOTONMIPMAPSUBLEVEL;
+    }
+
     /* Find the old palette */
     EnterCriticalSection(&ddraw_cs);
     hr = IDirectDrawSurface_GetPalette(iface, &oldPal);
diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c
index 2197c64..685ed45 100644
--- a/dlls/ddraw/tests/d3d.c
+++ b/dlls/ddraw/tests/d3d.c
@@ -3006,7 +3006,7 @@ static void DeviceLoadTest(void)
     ok(hr==DDERR_NOPALETTEATTACHED, "IDirectDrawSurface7_GetPalette returned: %x\n", hr);
 
     hr = IDirectDrawSurface7_SetPalette(texture_levels[0][1], palettes[1]);
-    todo_wine ok(hr==DDERR_NOTONMIPMAPSUBLEVEL, "IDirectDrawSurface7_SetPalette returned: %x\n", hr);
+    ok(hr==DDERR_NOTONMIPMAPSUBLEVEL, "IDirectDrawSurface7_SetPalette returned: %x\n", hr);
     hr = IDirectDrawSurface7_SetPalette(texture_levels[1][0], palettes[2]);
     ok(hr==DD_OK, "IDirectDrawSurface7_SetPalette returned: %x\n", hr);
 




More information about the wine-cvs mailing list