d3d9: Buffers do not support user memory.

This commit is contained in:
Stefan Dösinger 2013-12-10 14:36:57 +01:00 committed by Alexandre Julliard
parent d9bd9a9a87
commit 96c7a4d6ca
2 changed files with 23 additions and 0 deletions

View file

@ -879,7 +879,14 @@ static HRESULT WINAPI d3d9_device_CreateVertexBuffer(IDirect3DDevice9Ex *iface,
iface, size, usage, fvf, pool, buffer, shared_handle);
if (shared_handle)
{
if (pool != D3DPOOL_DEFAULT)
{
WARN("Trying to create a shared vertex buffer in pool %#x.\n", pool);
return D3DERR_NOTAVAILABLE;
}
FIXME("Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
}
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
if (!object)
@ -911,7 +918,14 @@ static HRESULT WINAPI d3d9_device_CreateIndexBuffer(IDirect3DDevice9Ex *iface, U
iface, size, usage, format, pool, buffer, shared_handle);
if (shared_handle)
{
if (pool != D3DPOOL_DEFAULT)
{
WARN("Trying to create a shared index buffer in pool %#x.\n", pool);
return D3DERR_NOTAVAILABLE;
}
FIXME("Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
}
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
if (!object)

View file

@ -541,6 +541,8 @@ static void test_user_memory(void)
IDirect3DTexture9 *texture;
IDirect3DCubeTexture9 *cube_texture;
IDirect3DVolumeTexture9 *volume_texture;
IDirect3DVertexBuffer9 *vertex_buffer;
IDirect3DIndexBuffer9 *index_buffer;
D3DLOCKED_RECT locked_rect;
UINT refcount;
HWND window;
@ -596,6 +598,13 @@ static void test_user_memory(void)
ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#x.\n", hr);
}
hr = IDirect3DDevice9Ex_CreateIndexBuffer(device, 16, 0, D3DFMT_INDEX32, D3DPOOL_SYSTEMMEM,
&index_buffer, &mem);
ok(hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr);
hr = IDirect3DDevice9Ex_CreateVertexBuffer(device, 16, 0, 0, D3DPOOL_SYSTEMMEM,
&vertex_buffer, &mem);
ok(hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr);
HeapFree(GetProcessHeap(), 0, mem);
refcount = IDirect3DDevice9Ex_Release(device);
ok(!refcount, "Device has %u references left.\n", refcount);