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

Alexandre Julliard julliard at winehq.org
Thu Sep 19 17:21:01 CDT 2013


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Thu Sep 19 10:16:45 2013 +0200

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

---

 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 3f3cb18..9ec9d1d 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -1819,6 +1819,13 @@ static HRESULT d3d_device_set_render_target(struct d3d_device *device,
         return DDERR_INVALIDCAPS;
     }
 
+    if (!(target->surface_desc.ddsCaps.dwCaps & DDSCAPS_3DDEVICE))
+    {
+        WARN("Surface %p is not a render target.\n", target);
+        wined3d_mutex_unlock();
+        return DDERR_INVALIDCAPS;
+    }
+
     if (device->rt_iface == rt_iface)
     {
         TRACE("No-op SetRenderTarget operation, not doing anything\n");




More information about the wine-cvs mailing list