Henri Verbeet : ddraw: Verify that the surface is a render target in d3d_device_create().

Alexandre Julliard julliard at winehq.org
Tue Sep 17 15:25:53 CDT 2013


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue Sep 17 09:22:38 2013 +0200

ddraw: Verify that the surface is a render target in d3d_device_create().

---

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

diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 66e0b7f..7510ed8 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -6745,6 +6745,13 @@ HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUn
     TRACE("ddraw %p, target %p, version %u, device %p, outer_unknown %p.\n",
             ddraw, target, version, device, outer_unknown);
 
+    if (!(target->surface_desc.ddsCaps.dwCaps & DDSCAPS_3DDEVICE)
+            || (target->surface_desc.ddsCaps.dwCaps & DDSCAPS_ZBUFFER))
+    {
+        WARN("Surface %p is not a render target.\n", target);
+        return DDERR_INVALIDCAPS;
+    }
+
     if (ddraw->flags & DDRAW_NO3D)
     {
         ERR_(winediag)("The application wants to create a Direct3D device, "




More information about the wine-cvs mailing list