26#define check_pixel_4bpp(box, x, y, z, color) _check_pixel_4bpp(__LINE__, box, x, y, z, color)
30 ok_(__FILE__,
line)(
color == expected_color,
"Got color 0x%08lx, expected 0x%08lx\n",
color, expected_color);
33#define check_pixel_8bpp(box, x, y, z, color) _check_pixel_8bpp(__LINE__, box, x, y, z, color)
37 ok_(__FILE__,
line)(
color == expected_color,
"Got color %#I64x, expected %#I64x.\n",
color, expected_color);
57 IDirect3DVolumeTexture9 *volume_texture;
58 const DWORD pixels[] = { 0xc3394cf0, 0x235ae892, 0x09b197fd, 0x8dc32bf6,
59 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
60 0x00000000, 0x00000000, 0x00000000, 0xffffffff,
61 0xffffffff, 0x00000000, 0xffffffff, 0x00000000 };
64 &volume_texture,
NULL);
67 skip(
"Failed to create volume texture.\n");
73 set_box(&src_box, 0, 0, 4, 1, 0, 4);
74 set_box(&dst_box, 0, 0, 4, 1, 0, 4);
76 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 16, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
79 win_skip(
"D3DXLoadVolumeFromMemory failed with error %#lx, skipping some tests.\n",
hr);
87 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_UNKNOWN, 16, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
88 ok(
hr ==
E_FAIL,
"D3DXLoadVolumeFromMemory returned %#lx, expected %#lx\n",
hr,
E_FAIL);
90 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL,
NULL,
pixels,
D3DFMT_A8R8G8B8, 16, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
91 ok(
hr ==
D3D_OK,
"D3DXLoadVolumeFromMemory returned %#lx, expected %#lx\n",
hr,
D3D_OK);
93 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
NULL,
D3DFMT_A8R8G8B8, 16, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
96 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 16, 16,
NULL,
NULL,
D3DX_DEFAULT, 0);
99 set_box(&src_box, 0, 0, 4, 4, 0, 1);
100 set_box(&dst_box, 0, 0, 4, 4, 0, 1);
101 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 16,
sizeof(
pixels),
NULL, &src_box,
D3DX_DEFAULT, 0);
102 ok(
hr ==
D3D_OK,
"D3DXLoadVolumeFromMemory returned %#lx, expected %#lx\n",
hr,
D3D_OK);
108 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL,
NULL,
pixels,
D3DFMT_A8R8G8B8, 16,
sizeof(
pixels),
NULL, &src_box,
D3DX_FILTER_NONE, 0);
109 ok(
hr ==
D3D_OK,
"D3DXLoadVolumeFromMemory returned %#lx, expected %#lx\n",
hr,
D3D_OK);
113 for (
z = 0;
z < 4;
z++)
115 for (
y = 0;
y < 256;
y++)
117 for (
x = 0;
x < 256;
x++)
123 set_box(&src_box, 0, 0, 2, 2, 1, 2);
124 set_box(&dst_box, 0, 0, 2, 2, 0, 1);
125 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 8, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
126 ok(
hr ==
D3D_OK,
"D3DXLoadVolumeFromMemory returned %#lx, expected %#lx\n",
hr,
D3D_OK);
132 set_box(&src_box, 0, 0, 2, 2, 2, 3);
133 set_box(&dst_box, 0, 0, 2, 2, 1, 2);
134 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 8, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
135 ok(
hr ==
D3D_OK,
"D3DXLoadVolumeFromMemory returned %#lx, expected %#lx\n",
hr,
D3D_OK);
141 set_box(&src_box, 0, 0, 4, 1, 0, 4);
143 set_box(&dst_box, -1, -1, 3, 0, 0, 4);
144 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 16, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
147 set_box(&dst_box, 254, 254, 258, 255, 0, 4);
148 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 16, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
151 set_box(&dst_box, 4, 1, 0, 0, 0, 4);
152 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 16, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
155 set_box(&dst_box, 0, 0, 0, 0, 0, 0);
156 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 16, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
159 set_box(&dst_box, 0, 0, 0, 0, 0, 1);
160 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 16, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
163 set_box(&dst_box, 300, 300, 300, 300, 0, 0);
164 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 16, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
173 skip(
"Failed to create volume texture\n");
179 set_box(&src_box, 0, 0, 4, 1, 0, 4);
180 set_box(&dst_box, 0, 0, 4, 1, 0, 4);
181 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 16, 16,
NULL, &src_box,
D3DX_DEFAULT, 0);
190 skip(
"Failed to create volume texture\n");
196 set_box(&src_box, 1, 1, 7, 7, 0, 1);
197 set_box(&dst_box, 1, 1, 7, 7, 0, 1);
198 hr =
D3DXLoadVolumeFromMemory(
volume,
NULL, &dst_box,
pixels,
D3DFMT_A8R8G8B8, 16, 32,
NULL, &src_box,
D3DX_DEFAULT, 0);
199 ok(
hr ==
D3D_OK,
"D3DXLoadVolumeFromMemory returned %#lx, expected %#lx\n",
hr,
D3D_OK);
226 IDirect3DVolumeTexture9 *volume_texture;
227 static const uint32_t bmp_32bpp_4_4_argb_expected[] =
229 0xffff0000, 0xff00ff00, 0xff0000ff, 0xff000000,
233 &volume_texture,
NULL);
236 skip(
"Failed to create volume texture\n");
243 ok(
hr ==
D3D_OK,
"D3DXLoadVolumeFromFileInMemory returned %#lx, expected %#lx\n",
hr,
D3D_OK);
257 set_box(&src_box, 0, 0, 4, 4, 0, 2);
259 ok(
hr ==
D3D_OK,
"D3DXLoadVolumeFromFileInMemory returned %#lx, expected %#lx\n",
hr,
D3D_OK);
261 set_box(&src_box, 0, 0, 0, 0, 0, 0);
263 ok(
hr ==
E_FAIL,
"D3DXLoadVolumeFromFileInMemory returned %#lx, expected %#lx\n",
hr,
E_FAIL);
265 set_box(&src_box, 0, 0, 5, 4, 0, 2);
269 set_box(&src_box, 0, 0, 4, 4, 0, 3);
278 &volume_texture,
NULL);
300 for (
z = 0;
z <
desc.Depth; ++
z)
302 for (
y = 0;
y <
desc.Height; ++
y)
304 for (
x = 0;
x <
desc.Width; ++
x)
317 &volume_texture,
NULL);
328 for (
z = 0;
z <
desc.Depth; ++
z)
330 for (
y = 0;
y <
desc.Height; ++
y)
332 const uint32_t *expected_color = &bmp_32bpp_4_4_argb_expected[(
y < (
desc.Height / 2)) ? 0 : 2];
334 for (
x = 0;
x <
desc.Width; ++
x)
336 if (
x < (
desc.Width / 2))
350 &volume_texture,
NULL);
353 skip(
"Failed to create volume texture\n");
365 for (
i = 0;
i < 2; ++
i)
381 for (
i = 0;
i < 2; ++
i)
406 skip(
"Couldn't create application window\n");
412 skip(
"Couldn't create IDirect3D9 object\n");
423 skip(
"Failed to create IDirect3DDevice9 object %#lx\n",
hr);
#define D3DERR_INVALIDCALL
IDirect3D9 *WINAPI Direct3DCreate9(UINT SDKVersion)
#define IDirect3DVolumeTexture9_GetLevelDesc(p, a, b)
#define IDirect3DVolumeTexture9_Release(p)
#define IDirect3DVolume9_UnlockBox(p)
#define IDirect3DVolume9_LockBox(p, a, b, c)
#define IDirect3D9_CreateDevice(p, a, b, c, d, e, f)
#define IDirect3DVolume9_Release(p)
#define IDirect3DDevice9_CreateVolumeTexture(p, a, b, c, d, e, f, g, h, i)
#define IDirect3DVolumeTexture9_GetVolumeLevel(p, a, b)
#define IDirect3D9_Release(p)
#define IDirect3DDevice9_Release(p)
#define check_volume_readback_pixel_4bpp(rb, x, y, z, color, todo)
static const uint8_t bmp_32bpp_4_4_argb[]
#define check_image_info(info, width, height, depth, mip_levels, format, resource_type, image_file_format, wine_todo)
static const uint8_t dds_24bit_8_8[]
#define get_texture_volume_readback(device, volume_tex, mip_level, rb)
static const uint8_t png_2_2_64bpp_rgba[]
static const uint8_t png_2_2_48bpp_rgb[]
static const struct @1911 test_filter_values[]
static const uint8_t dds_volume_map[]
#define release_volume_readback(rb)
HRESULT WINAPI D3DXLoadVolumeFromMemory(IDirect3DVolume9 *dst_volume, const PALETTEENTRY *dst_palette, const D3DBOX *dst_box, const void *src_memory, D3DFORMAT src_format, UINT src_row_pitch, UINT src_slice_pitch, const PALETTEENTRY *src_palette, const D3DBOX *src_box, DWORD filter, D3DCOLOR color_key)
HRESULT WINAPI D3DXLoadVolumeFromFileInMemory(IDirect3DVolume9 *dst_volume, const PALETTEENTRY *dst_palette, const D3DBOX *dst_box, const void *src_data, UINT src_data_size, const D3DBOX *src_box, DWORD filter, D3DCOLOR color_key, D3DXIMAGE_INFO *src_info)
#define D3DX_FILTER_POINT
GLint GLint GLint GLint GLint x
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
GLint GLint GLint GLint GLint GLint y
GLdouble GLdouble GLdouble GLdouble top
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
void __cdecl void __cdecl void __cdecl void __cdecl void __cdecl void winetest_pop_context(void)
void __cdecl void __cdecl void __cdecl void __cdecl void __cdecl winetest_push_context(const char *fmt,...) __WINE_PRINTF_ATTR(1
D3D11_SHADER_VARIABLE_DESC desc
static void set_box(D3DBOX *box, UINT left, UINT top, UINT right, UINT bottom, UINT front, UINT back)
static void test_D3DXLoadVolumeFromMemory(IDirect3DDevice9 *device)
#define check_pixel_4bpp(box, x, y, z, color)
static void _check_pixel_4bpp(unsigned int line, const D3DLOCKED_BOX *box, int x, int y, int z, DWORD expected_color)
#define check_pixel_8bpp(box, x, y, z, color)
static void _check_pixel_8bpp(unsigned int line, const D3DLOCKED_BOX *box, int x, int y, int z, uint64_t expected_color)
static void test_D3DXLoadVolumeFromFileInMemory(IDirect3DDevice9 *device)
#define WS_OVERLAPPEDWINDOW
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI DestroyWindow(_In_ HWND)
static struct address_cache * front
#define D3DADAPTER_DEFAULT
#define D3DCREATE_SOFTWARE_VERTEXPROCESSING