Am 26.09.2010 um 19:51 schrieb Travis Athougies:
> + data = compute_shader_fullscreen9(device, vshader_passthru, pshader, quad_geometry,
> + D3DFMT_A8R8G8B8, 1, 1);
> +
> + ok(data[0] == D3DCOLOR_ARGB(0, 0, 255, 255),
> + "swizzle_test: Got color %08x (should be 0x0000FFFF)\n", data[0]);
You leak the returned data here.
On the big picture of this, I don't like the void * blob returned from compute_shader_fullscreen. As far as I can see the only position dependent aspect of HLSL is vpos(or rather, the HLSL equivalent). For all others it would be OK to return a ARGB color.
> + /* The Direct3D 9 docs state that we cannot lock a render target surface,
> + instead we must copy the render target onto this surface to lock it */
I think you can, if you create it with D3DUSAGE_DYNAMIC | D3DUSAGE_RENDERTARGET. If you want the backbuffer to be lockable you'll need some device creation flag whose name I forgot.