d3d8: Use wined3d_buffer_create() in d3d8_device_prepare_index_buffer().

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet 2018-02-06 03:04:17 +03:30 committed by Alexandre Julliard
parent 9801f09b57
commit 112579f4ba
1 changed files with 11 additions and 4 deletions

View File

@ -2196,15 +2196,22 @@ static HRESULT d3d8_device_prepare_index_buffer(struct d3d8_device *device, UINT
if (device->index_buffer_size < min_size || !device->index_buffer)
{
UINT size = max(device->index_buffer_size * 2, min_size);
struct wined3d_buffer_desc desc;
struct wined3d_buffer *buffer;
TRACE("Growing index buffer to %u bytes\n", size);
hr = wined3d_buffer_create_ib(device->wined3d_device, size, WINED3DUSAGE_DYNAMIC | WINED3DUSAGE_WRITEONLY,
WINED3D_POOL_DEFAULT, NULL, &d3d8_null_wined3d_parent_ops, &buffer);
if (FAILED(hr))
desc.byte_width = size;
desc.usage = WINED3DUSAGE_DYNAMIC | WINED3DUSAGE_WRITEONLY | WINED3DUSAGE_STATICDECL;
desc.bind_flags = WINED3D_BIND_INDEX_BUFFER;
desc.access = WINED3D_RESOURCE_ACCESS_GPU;
desc.misc_flags = 0;
desc.structure_byte_stride = 0;
if (FAILED(hr = wined3d_buffer_create(device->wined3d_device, &desc,
NULL, NULL, &d3d8_null_wined3d_parent_ops, &buffer)))
{
ERR("(%p) wined3d_buffer_create_ib failed with hr = %08x\n", device, hr);
ERR("Failed to create index buffer, hr %#x.\n", hr);
return hr;
}