Module: wine Branch: master Commit: ff659522f6d16c46d61b3cba0564ced8e65f5aa6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ff659522f6d16c46d61b3cba05...
Author: Ričardas Barkauskas miegalius@gmail.com Date: Sun Oct 24 22:36:43 2010 +0300
ddraw: Fix DDSCAPS_3DDEVICE surfaces always setting DDSCAPS_VISIBLE.
---
dlls/ddraw/surface.c | 7 ++++++- dlls/ddraw/tests/d3d.c | 2 +- dlls/ddraw/tests/dsurface.c | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 5bd219f..2878a56 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -3511,12 +3511,17 @@ HRESULT ddraw_surface_init(IDirectDrawSurfaceImpl *surface, IDirectDrawImpl *ddr desc->ddsCaps.dwCaps |= DDSCAPS_LOCALVIDMEM | DDSCAPS_VIDEOMEMORY; }
- if (desc->ddsCaps.dwCaps & (DDSCAPS_PRIMARYSURFACE | DDSCAPS_3DDEVICE)) + if (desc->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) { usage |= WINED3DUSAGE_RENDERTARGET; desc->ddsCaps.dwCaps |= DDSCAPS_VISIBLE; }
+ if (desc->ddsCaps.dwCaps & DDSCAPS_3DDEVICE) + { + usage |= WINED3DUSAGE_RENDERTARGET; + } + if (desc->ddsCaps.dwCaps & (DDSCAPS_OVERLAY)) { usage |= WINED3DUSAGE_OVERLAY; diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c index 8088188..f144543 100644 --- a/dlls/ddraw/tests/d3d.c +++ b/dlls/ddraw/tests/d3d.c @@ -3593,7 +3593,7 @@ static void BackBuffer3DCreateSurfaceTest(void) { hr = IDirectDrawSurface_GetSurfaceDesc(surf, &created_ddsd); ok(SUCCEEDED(hr), "IDirectDraw_GetSurfaceDesc failed: 0x%08x\n", hr); - todo_wine ok(created_ddsd.ddsCaps.dwCaps == expected_caps, + ok(created_ddsd.ddsCaps.dwCaps == expected_caps, "GetSurfaceDesc returned caps %x, expected %x\n", created_ddsd.ddsCaps.dwCaps, expected_caps);
diff --git a/dlls/ddraw/tests/dsurface.c b/dlls/ddraw/tests/dsurface.c index 355c9d2..14fb87c 100644 --- a/dlls/ddraw/tests/dsurface.c +++ b/dlls/ddraw/tests/dsurface.c @@ -2916,7 +2916,7 @@ static void SurfaceCapsTest(void) hr = IDirectDrawSurface_GetSurfaceDesc(surface1, &desc); ok(hr == DD_OK, "IDirectDrawSurface_GetSurfaceDesc failed with %08x\n", hr);
- if (!(create_caps[i] & (DDSCAPS_PRIMARYSURFACE | DDSCAPS_3DDEVICE))) + if (!(create_caps[i] & DDSCAPS_PRIMARYSURFACE)) ok(desc.ddsCaps.dwCaps == expected_caps[i], "GetSurfaceDesc test %d returned caps %x, expected %x\n", i, desc.ddsCaps.dwCaps, expected_caps[i]); @@ -2971,7 +2971,7 @@ static void SurfaceCapsTest(void) hr = IDirectDrawSurface7_GetSurfaceDesc(surface7, &desc2); ok(hr == DD_OK, "IDirectDrawSurface_GetSurfaceDesc failed with %08x\n", hr);
- if (!(create_caps[i] & (DDSCAPS_PRIMARYSURFACE | DDSCAPS_3DDEVICE))) + if (!(create_caps[i] & DDSCAPS_PRIMARYSURFACE)) ok(desc2.ddsCaps.dwCaps == expected_caps[i], "GetSurfaceDesc test %d returned caps %x, expected %x\n", i, desc2.ddsCaps.dwCaps, expected_caps[i]);