Ričardas Barkauskas : ddraw: Fix DDSCAPS_3DDEVICE surfaces always setting DDSCAPS_VISIBLE.
Alexandre Julliard
julliard at winehq.org
Mon Oct 25 10:58:31 CDT 2010
Module: wine
Branch: master
Commit: ff659522f6d16c46d61b3cba0564ced8e65f5aa6
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ff659522f6d16c46d61b3cba0564ced8e65f5aa6
Author: Ričardas Barkauskas <miegalius at 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]);
More information about the wine-cvs
mailing list