On 29 January 2010 11:35, Stefan Dösinger stefan@codeweavers.com wrote:
+static HMODULE d3d9_handle = 0;
This is redundant.
- hr = IDirect3DVertexBuffer9_Lock(buffer, 0, 0, (void *) &bufstart, 0);
- ok(hr == D3D_OK, "IDirect3DVertexBuffer9_Lock failed, 0x%08x\n", hr);
- hr = IDirect3DVertexBuffer9_Unlock(buffer);
- ok(hr == D3D_OK, "IDirect3DVertexBuffer9_Unlock failed, 0x%08x\n", hr);
- hr = IDirect3DVertexBuffer9_Lock(buffer, 0, 1024, (void *) &data, 0);
- ok(hr == D3D_OK, "IDirect3DVertexBuffer9_Lock failed, 0x%08x\n", hr);
- hr = IDirect3DVertexBuffer9_Unlock(buffer);
- ok(hr == D3D_OK, "IDirect3DVertexBuffer9_Unlock failed, 0x%08x\n", hr);
- ok(bufstart == data, "Two locks returned different addresses: %p, %p\n", bufstart, data);
Why would we care if the buffer is always mapped at the same address? Also note that the test doesn't necessarily prove this is the case.
- /* This happily wraps around the address space */
- hr = IDirect3DVertexBuffer9_Lock(buffer, ~0U, 1024, (void *) &data, 0);
- ok(hr == D3D_OK, "IDirect3DVertexBuffer9_Lock(start ~0U) failed, 0x%08x\n", hr);
- hr = IDirect3DVertexBuffer9_Unlock(buffer);
- ok(hr == D3D_OK, "IDirect3DVertexBuffer9_Unlock failed, 0x%08x\n", hr);
- ok(bufstart -1 == data, "~0U start lock returned unexpected address: expected %p, got %p\n", bufstart - 1, data);
I'd expect this to break on 64 bit. Also, like the previous test, why do we care? Do you seriously have an application that does this?