On 22 January 2012 16:32, Stefan Dösinger <stefan(a)codeweavers.com> wrote:
> +static void get_depth_stencil(IDirect3DDevice7 *device, IDirectDrawSurface7 **ds)
> +{
> + IDirectDrawSurface7 *rt;
> + DDSCAPS2 caps = {DDSCAPS_ZBUFFER, 0, 0, 0};
> + HRESULT hr;
> +
> + hr = IDirect3DDevice7_GetRenderTarget(device, &rt);
> + ok(SUCCEEDED(hr), "Failed to get the render target, hr %#x.\n", hr);
> + hr = IDirectDrawSurface7_GetAttachedSurface(rt, &caps, ds);
> + ok(SUCCEEDED(hr) || hr == DDERR_NOTFOUND, "Failed to get the z buffer, hr %#x.\n", hr);
> + IDirectDrawSurface7_Release(rt);
> +}
This should probably just return the surface.
> + hr = IDirect3D7_QueryInterface(d3d, &IID_IDirectDraw7, (void **) &ddraw);
Extra space.
> + ok(SUCCEEDED(hr), "Failed to set the z cuntion, hr %#x.\n", hr);
Typo.
> + memset(&fx, 0, sizeof(fx));
> + fx.dwSize = sizeof(fx);
> + fx.dwFillDepth = 0;
That probably needs an U5(). I tend to forget half of them as well though.