d3dx9: Improve generated DDS file header.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com> Signed-off-by: Matteo Bruni <mbruni@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
54ebbfdc63
commit
d2307b1ffc
|
@ -487,13 +487,11 @@ static HRESULT save_dds_surface_to_memory(ID3DXBuffer **dst_buffer, IDirect3DSur
|
|||
|
||||
memset(header, 0, sizeof(*header));
|
||||
header->signature = MAKEFOURCC('D','D','S',' ');
|
||||
header->size = sizeof(*header);
|
||||
header->flags = DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PITCH | DDS_PIXELFORMAT | DDS_MIPMAPCOUNT;
|
||||
/* The signature is not really part of the DDS header */
|
||||
header->size = sizeof(*header) - FIELD_OFFSET(struct dds_header, size);
|
||||
header->flags = DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PIXELFORMAT;
|
||||
header->height = src_desc.Height;
|
||||
header->width = src_desc.Width;
|
||||
header->pitch_or_linear_size = dst_pitch;
|
||||
header->depth = 1;
|
||||
header->miplevels = 1;
|
||||
header->caps = DDS_CAPS_TEXTURE;
|
||||
hr = d3dformat_to_dds_pixel_format(&header->pixel_format, src_desc.Format);
|
||||
if (FAILED(hr))
|
||||
|
|
|
@ -1277,14 +1277,14 @@ static void test_D3DXSaveSurfaceToFileInMemory(IDirect3DDevice9 *device)
|
|||
header = ID3DXBuffer_GetBufferPointer(buffer);
|
||||
|
||||
ok(header->magic == MAKEFOURCC('D','D','S',' '), "Invalid DDS signature.\n");
|
||||
todo_wine ok(header->size == 124, "Invalid DDS size %u.\n", header->size);
|
||||
ok(header->size == 124, "Invalid DDS size %u.\n", header->size);
|
||||
ok(header->height == 4, "Got unexpected height %u.\n", header->height);
|
||||
ok(header->width == 4, "Got unexpected width %u.\n", header->width);
|
||||
todo_wine ok(!header->depth, "Got unexpected depth %u.\n", header->depth);
|
||||
todo_wine ok(!header->miplevels, "Got unexpected miplevels %u.\n", header->miplevels);
|
||||
todo_wine ok(!header->pitch_or_linear_size, "Got unexpected pitch_or_linear_size %u.\n", header->pitch_or_linear_size);
|
||||
ok(!header->depth, "Got unexpected depth %u.\n", header->depth);
|
||||
ok(!header->miplevels, "Got unexpected miplevels %u.\n", header->miplevels);
|
||||
ok(!header->pitch_or_linear_size, "Got unexpected pitch_or_linear_size %u.\n", header->pitch_or_linear_size);
|
||||
todo_wine ok(header->caps == (DDS_CAPS_TEXTURE | DDSCAPS_ALPHA), "Got unexpected caps %x.\n", header->caps);
|
||||
todo_wine ok(header->flags == (DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PIXELFORMAT),
|
||||
ok(header->flags == (DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PIXELFORMAT),
|
||||
"Got unexpected flags %x.\n", header->flags);
|
||||
ID3DXBuffer_Release(buffer);
|
||||
|
||||
|
|
Loading…
Reference in New Issue