[PATCH 10/10] ddraw: Mark only PRIMARYSURFACE as VISIBLE. (try 3)

Oldřich Jedlička oldium.pro at seznam.cz
Tue Aug 3 14:26:23 CDT 2010


---
 dlls/ddraw/ddraw.c     |    5 ++++-
 dlls/ddraw/tests/d3d.c |    2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index bfc9c6d..f24eb4c 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -2495,7 +2495,10 @@ static HRESULT ddraw_create_surface(IDirectDrawImpl *This, DDSURFACEDESC2 *pDDSD
     {
         Usage |= WINED3DUSAGE_RENDERTARGET;
 
-        pDDSD->ddsCaps.dwCaps |= DDSCAPS_VISIBLE;
+        if (pDDSD->ddsCaps.dwCaps & (DDSCAPS_PRIMARYSURFACE))
+        {
+            pDDSD->ddsCaps.dwCaps |= DDSCAPS_VISIBLE;
+        }
     }
     if (pDDSD->ddsCaps.dwCaps & (DDSCAPS_OVERLAY))
     {
diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c
index 55e5885..5390c65 100644
--- a/dlls/ddraw/tests/d3d.c
+++ b/dlls/ddraw/tests/d3d.c
@@ -3583,7 +3583,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);
         IDirectDrawSurface_Release(surf);
-- 
1.7.2




More information about the wine-patches mailing list