Henri Verbeet : ddraw: Verify that surfaces with an indexed format have a palette attached in d3d_device_create ().

Alexandre Julliard julliard at winehq.org
Wed Sep 18 15:49:58 CDT 2013


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Sep 18 10:57:09 2013 +0200

ddraw: Verify that surfaces with an indexed format have a palette attached in d3d_device_create().

---

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

diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 7510ed8..210a522 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -6752,6 +6752,16 @@ HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUn
         return DDERR_INVALIDCAPS;
     }
 
+    if ((target->surface_desc.u4.ddpfPixelFormat.dwFlags
+            & (DDPF_PALETTEINDEXED1 | DDPF_PALETTEINDEXED2
+            | DDPF_PALETTEINDEXED4 | DDPF_PALETTEINDEXED8
+            | DDPF_PALETTEINDEXEDTO8))
+            && !wined3d_surface_get_palette(target->wined3d_surface))
+    {
+        WARN("Surface %p has an indexed pixel format, but no palette.\n", target);
+        return DDERR_NOPALETTEATTACHED;
+    }
+
     if (ddraw->flags & DDRAW_NO3D)
     {
         ERR_(winediag)("The application wants to create a Direct3D device, "




More information about the wine-cvs mailing list