Module: wine Branch: master Commit: 559229aa1009e6d467a9cf6da18f6c5a400ed5d2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=559229aa1009e6d467a9cf6da1...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed Nov 27 11:04:49 2013 +0100
ddraw: Move the location validation from CreateSurface() to ddraw_surface_create_texture().
---
dlls/ddraw/ddraw.c | 8 -------- dlls/ddraw/surface.c | 8 ++++++++ 2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c index 314b5a0..5f6d792 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c @@ -2814,7 +2814,6 @@ static HRESULT CreateSurface(struct ddraw *ddraw, DDSURFACEDESC2 *DDSD, struct ddraw_surface *object = NULL; HRESULT hr; DDSURFACEDESC2 desc2; - const DWORD sysvidmem = DDSCAPS_VIDEOMEMORY | DDSCAPS_SYSTEMMEMORY;
TRACE("ddraw %p, surface_desc %p, surface %p, outer_unknown %p.\n", ddraw, DDSD, surface, UnkOuter);
@@ -2870,13 +2869,6 @@ static HRESULT CreateSurface(struct ddraw *ddraw, DDSURFACEDESC2 *DDSD, return DDERR_INVALIDCAPS; }
- /* This is a special case in ddrawex, but not allowed in ddraw. */ - if ((DDSD->ddsCaps.dwCaps & sysvidmem) == sysvidmem) - { - WARN("Tried to create a surface in both system and video memory.\n"); - return DDERR_INVALIDCAPS; - } - /* Modify some flags */ copy_to_surfacedesc2(&desc2, DDSD);
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 74bdce9..e127f72 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -5608,6 +5608,14 @@ HRESULT ddraw_surface_create_texture(struct ddraw *ddraw, DDSURFACEDESC2 *desc, DDRAW_dump_surface_desc(desc); }
+ /* This is a special case in ddrawex, but not allowed in ddraw. */ + if ((desc->ddsCaps.dwCaps & (DDSCAPS_VIDEOMEMORY | DDSCAPS_SYSTEMMEMORY)) + == (DDSCAPS_VIDEOMEMORY | DDSCAPS_SYSTEMMEMORY)) + { + WARN("Tried to create a surface in both system and video memory.\n"); + return DDERR_INVALIDCAPS; + } + if ((desc->ddsCaps.dwCaps2 & DDSCAPS2_CUBEMAP_ALLFACES) && !(desc->ddsCaps.dwCaps2 & DDSCAPS2_CUBEMAP)) {