d3dx9: Use check_texture_requirements() in D3DXCheckVolumeTextureRequirements() with correct resource type.

Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Paul Gofman 2019-10-25 20:30:58 +03:00 committed by Alexandre Julliard
parent e50873f504
commit 0b03d21c8f
2 changed files with 18 additions and 2 deletions

View File

@ -2125,6 +2125,22 @@ static void test_D3DXCreateVolumeTextureFromFileInMemory(IDirect3DDevice9 *devic
ok(ref == 0, "Invalid reference count. Got %u, expected 0.\n", ref);
}
static void test_D3DXCreateVolumeTextureFromFileInMemoryEx(IDirect3DDevice9 *device)
{
IDirect3DVolumeTexture9 *volume_texture;
HRESULT hr;
hr = D3DXCreateVolumeTextureFromFileInMemoryEx(device, dds_volume_map, sizeof(dds_volume_map), D3DX_DEFAULT,
D3DX_DEFAULT, D3DX_DEFAULT, 1, D3DUSAGE_RENDERTARGET, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT,
D3DX_DEFAULT, 0, NULL, NULL, &volume_texture);
ok(hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr);
hr = D3DXCreateVolumeTextureFromFileInMemoryEx(device, dds_volume_map, sizeof(dds_volume_map), D3DX_DEFAULT,
D3DX_DEFAULT, D3DX_DEFAULT, 1, D3DUSAGE_DEPTHSTENCIL, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT,
D3DX_DEFAULT, 0, NULL, NULL, &volume_texture);
ok(hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr);
}
/* fills positive x face with red color */
static void WINAPI fill_cube_positive_x(D3DXVECTOR4 *out, const D3DXVECTOR3 *tex_coord, const D3DXVECTOR3 *texel_size, void *data)
{
@ -2599,6 +2615,7 @@ START_TEST(texture)
test_D3DXCreateCubeTextureFromFileInMemory(device);
test_D3DXCreateCubeTextureFromFileInMemoryEx(device);
test_D3DXCreateVolumeTextureFromFileInMemory(device);
test_D3DXCreateVolumeTextureFromFileInMemoryEx(device);
test_D3DXSaveTextureToFileInMemory(device);
ref = IDirect3DDevice9_Release(device);

View File

@ -482,7 +482,7 @@ HRESULT WINAPI D3DXCheckVolumeTextureRequirements(struct IDirect3DDevice9 *devic
if (!(caps.TextureCaps & D3DPTEXTURECAPS_VOLUMEMAP))
return D3DERR_NOTAVAILABLE;
hr = D3DXCheckTextureRequirements(device, &w, &h, NULL, usage, format, pool);
hr = check_texture_requirements(device, &w, &h, NULL, usage, format, pool, D3DRTYPE_VOLUMETEXTURE);
if (d == D3DX_DEFAULT)
d = 1;
@ -1246,7 +1246,6 @@ HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemoryEx(IDirect3DDevice9 *devic
hr = D3DXCreateVolumeTexture(device, width, height, depth, mip_levels, usage, format, pool, &tex);
buftex = NULL;
}
if (FAILED(hr)) return hr;
hr = load_volume_texture_from_dds(tex, data, palette, filter, color_key, &image_info);