[PATCH 3/3] ddraw: Check for DDRAW_NO3D before checking for a video memory surface in d3d_device_create().

Henri Verbeet hverbeet at codeweavers.com
Thu Sep 27 10:30:35 CDT 2018


While slightly odd, this matches what the tests expect.

Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 dlls/ddraw/device.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 5db0b81a819..7866c281465 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -6986,18 +6986,18 @@ HRESULT d3d_device_create(struct ddraw *ddraw, struct ddraw_surface *target, IUn
         return DDERR_NOPALETTEATTACHED;
     }
 
-    if (!(target->surface_desc.ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY))
-    {
-        WARN("Surface %p is not in video memory.\n", target);
-        return D3DERR_SURFACENOTINVIDMEM;
-    }
-
     if (ddraw->flags & DDRAW_NO3D)
     {
         ERR_(winediag)("The application wants to create a Direct3D device, "
                 "but the current DirectDrawRenderer does not support this.\n");
 
-        return DDERR_NO3D;
+        return DDERR_OUTOFMEMORY;
+    }
+
+    if (!(target->surface_desc.ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY))
+    {
+        WARN("Surface %p is not in video memory.\n", target);
+        return D3DERR_SURFACENOTINVIDMEM;
     }
 
     if (ddraw->d3ddevice)
-- 
2.11.0




More information about the wine-devel mailing list