From 9bed6988a4d5df4b1aba6c88054e6bb8006b219f Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Mon, 29 Jan 2001 00:31:50 +0000 Subject: [PATCH] dvideo.dll forgets to set the DDSD_CAPS flag, just assume it set. Output more debug info on failure. --- dlls/ddraw/ddraw/main.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/dlls/ddraw/ddraw/main.c b/dlls/ddraw/ddraw/main.c index 880a958eb55..d3492a994c8 100644 --- a/dlls/ddraw/ddraw/main.c +++ b/dlls/ddraw/ddraw/main.c @@ -470,14 +470,20 @@ Main_DirectDraw_CreateSurface(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD, TRACE("(%p)->(%p,%p,%p)\n",This,pDDSD,ppSurf,pUnkOuter); TRACE("Requested Caps: 0x%lx\n", pDDSD->ddsCaps.dwCaps); - if (pUnkOuter != NULL) + if (pUnkOuter != NULL) { + FIXME("outer != NULL?\n"); return CLASS_E_NOAGGREGATION; /* unchecked */ + } - if (!(pDDSD->dwFlags & DDSD_CAPS)) - return DDERR_INVALIDPARAMS; /* unchecked */ + if (!(pDDSD->dwFlags & DDSD_CAPS)) { + /* DVIDEO.DLL does forget the DDSD_CAPS flag ... *sigh* */ + pDDSD->dwFlags |= DDSD_CAPS; + } - if (ppSurf == NULL) + if (ppSurf == NULL) { + FIXME("You want to get back a surface? Don't give NULL ptrs!\n"); return E_POINTER; /* unchecked */ + } if (pDDSD->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) { @@ -511,7 +517,10 @@ Main_DirectDraw_CreateSurface(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD, hr = create_offscreen(This, pDDSD, ppSurf, pUnkOuter); } - if (FAILED(hr)) return hr; + if (FAILED(hr)) { + FIXME("failed surface creation with code 0x%08lx\n",hr); + return hr; + } return DD_OK; } -- 2.11.4.GIT