- hr = IDirect3D2_QueryInterface(d3d2, &IID_IDirectDraw,
(void**)&ddraw); Why aren't you using the existing ddraw1 interface variable?
Ah, My bad. I must've missed the already existing variables, I probably wrote this in a hurry to get the tests working.
- primary_surface_found = FALSE;
- hr = IDirectDraw_EnumSurfaces(ddraw, DDENUMSURFACES_ALL |
DDENUMSURFACES_DOESEXIST,
NULL, NULL, surface_callback);
- ok(hr == DD_OK, "Failed to enumerate surfaces (hr = %x).\n", hr);
- ok(!primary_surface_found, "Primary surface shouldn't be created by
CreateDeviceFromD3D.\n");
- IDirectDraw_Release(ddraw);
- hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &ds);
- ok(hr == DD_OK, "Cannot get attached depth surface (hr = %x).\n",
hr);
- desc.dwSize = sizeof(desc);
- hr = IDirectDrawSurface_GetSurfaceDesc(ds, &desc);
- ok(hr == DD_OK, "Cannot get z surface desc structure (hr = %x).\n",
hr); I think here it would be interesting to confirm that the Z surface is the one created by create_device().
So use a global variable to store the z surface we created from create_device? That should work I guess.
Thanks! jam