Module: wine Branch: master Commit: d2d0c42b6d037fa954633a397306f557ef8bfe9b URL: http://source.winehq.org/git/wine.git/?a=commit;h=d2d0c42b6d037fa954633a3973...
Author: Henri Verbeet hverbeet@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, "