From: Zebediah Figura z.figura12@gmail.com
Based on a patch by Christian Costa.
Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- The FIXME should be enough to figure out what's going on and I don't imagine this patch will make things any worse than they currently are. I'd still have preferred a real implementation / tests but I can't have everything, can I...
dlls/d3dx9_24/d3dx9_24.spec | 2 +- dlls/d3dx9_25/d3dx9_25.spec | 2 +- dlls/d3dx9_26/d3dx9_26.spec | 2 +- dlls/d3dx9_27/d3dx9_27.spec | 2 +- dlls/d3dx9_28/d3dx9_28.spec | 2 +- dlls/d3dx9_29/d3dx9_29.spec | 2 +- dlls/d3dx9_30/d3dx9_30.spec | 2 +- dlls/d3dx9_31/d3dx9_31.spec | 2 +- dlls/d3dx9_32/d3dx9_32.spec | 2 +- dlls/d3dx9_33/d3dx9_33.spec | 2 +- dlls/d3dx9_34/d3dx9_34.spec | 2 +- dlls/d3dx9_35/d3dx9_35.spec | 2 +- dlls/d3dx9_36/d3dx9_36.spec | 2 +- dlls/d3dx9_36/texture.c | 9 +++++++++ dlls/d3dx9_37/d3dx9_37.spec | 2 +- dlls/d3dx9_38/d3dx9_38.spec | 2 +- dlls/d3dx9_39/d3dx9_39.spec | 2 +- dlls/d3dx9_40/d3dx9_40.spec | 2 +- dlls/d3dx9_41/d3dx9_41.spec | 2 +- dlls/d3dx9_42/d3dx9_42.spec | 2 +- dlls/d3dx9_43/d3dx9_43.spec | 2 +- 21 files changed, 29 insertions(+), 20 deletions(-)
diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec index c3d5686a3d0..7002e2bd575 100644 --- a/dlls/d3dx9_24/d3dx9_24.spec +++ b/dlls/d3dx9_24/d3dx9_24.spec @@ -18,7 +18,7 @@ @ stdcall D3DXCompileShaderFromResourceW(ptr wstr ptr ptr str str long ptr ptr ptr) @ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr) @ stdcall D3DXComputeBoundingSphere(ptr long long ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec index 2ede0d107c3..301000514a0 100644 --- a/dlls/d3dx9_25/d3dx9_25.spec +++ b/dlls/d3dx9_25/d3dx9_25.spec @@ -18,7 +18,7 @@ @ stdcall D3DXCompileShaderFromResourceW(ptr wstr ptr ptr str str long ptr ptr ptr) @ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr) @ stdcall D3DXComputeBoundingSphere(ptr long long ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec index 5b1b37ab907..fe641a7c876 100644 --- a/dlls/d3dx9_26/d3dx9_26.spec +++ b/dlls/d3dx9_26/d3dx9_26.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec index 5b1b37ab907..fe641a7c876 100644 --- a/dlls/d3dx9_27/d3dx9_27.spec +++ b/dlls/d3dx9_27/d3dx9_27.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec index ad0094bafa7..acbcf26ebbd 100644 --- a/dlls/d3dx9_28/d3dx9_28.spec +++ b/dlls/d3dx9_28/d3dx9_28.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec index ad0094bafa7..acbcf26ebbd 100644 --- a/dlls/d3dx9_29/d3dx9_29.spec +++ b/dlls/d3dx9_29/d3dx9_29.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec index 11a1a5e8f02..fdf5ee43b6c 100644 --- a/dlls/d3dx9_30/d3dx9_30.spec +++ b/dlls/d3dx9_30/d3dx9_30.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec index 7c255661937..ed842cdaf14 100644 --- a/dlls/d3dx9_31/d3dx9_31.spec +++ b/dlls/d3dx9_31/d3dx9_31.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec index 549dcbc86f3..af5624c0592 100644 --- a/dlls/d3dx9_32/d3dx9_32.spec +++ b/dlls/d3dx9_32/d3dx9_32.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec index 549dcbc86f3..af5624c0592 100644 --- a/dlls/d3dx9_33/d3dx9_33.spec +++ b/dlls/d3dx9_33/d3dx9_33.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec index 549dcbc86f3..af5624c0592 100644 --- a/dlls/d3dx9_34/d3dx9_34.spec +++ b/dlls/d3dx9_34/d3dx9_34.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec index 549dcbc86f3..af5624c0592 100644 --- a/dlls/d3dx9_35/d3dx9_35.spec +++ b/dlls/d3dx9_35/d3dx9_35.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec index e32d7a716c9..de8b12ce03b 100644 --- a/dlls/d3dx9_36/d3dx9_36.spec +++ b/dlls/d3dx9_36/d3dx9_36.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_36/texture.c b/dlls/d3dx9_36/texture.c index b81f3a1e9e7..0f53d95bf1f 100644 --- a/dlls/d3dx9_36/texture.c +++ b/dlls/d3dx9_36/texture.c @@ -1919,3 +1919,12 @@ HRESULT WINAPI D3DXSaveTextureToFileInMemory(ID3DXBuffer **dst_buffer, D3DXIMAGE
return hr; } + +HRESULT WINAPI D3DXComputeNormalMap(IDirect3DTexture9 *texture, IDirect3DTexture9 *src_texture, + const PALETTEENTRY *src_palette, DWORD flags, DWORD channel, float amplitude) +{ + FIXME("texture %p, src_texture %p, src_palette %p, flags %#x, channel %u, amplitude %.8e stub.\n", + texture, src_texture, src_palette, flags, channel, amplitude); + + return D3D_OK; +} diff --git a/dlls/d3dx9_37/d3dx9_37.spec b/dlls/d3dx9_37/d3dx9_37.spec index e32d7a716c9..de8b12ce03b 100644 --- a/dlls/d3dx9_37/d3dx9_37.spec +++ b/dlls/d3dx9_37/d3dx9_37.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_38/d3dx9_38.spec b/dlls/d3dx9_38/d3dx9_38.spec index e32d7a716c9..de8b12ce03b 100644 --- a/dlls/d3dx9_38/d3dx9_38.spec +++ b/dlls/d3dx9_38/d3dx9_38.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_39/d3dx9_39.spec b/dlls/d3dx9_39/d3dx9_39.spec index e32d7a716c9..de8b12ce03b 100644 --- a/dlls/d3dx9_39/d3dx9_39.spec +++ b/dlls/d3dx9_39/d3dx9_39.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_40/d3dx9_40.spec b/dlls/d3dx9_40/d3dx9_40.spec index e32d7a716c9..de8b12ce03b 100644 --- a/dlls/d3dx9_40/d3dx9_40.spec +++ b/dlls/d3dx9_40/d3dx9_40.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_41/d3dx9_41.spec b/dlls/d3dx9_41/d3dx9_41.spec index e32d7a716c9..de8b12ce03b 100644 --- a/dlls/d3dx9_41/d3dx9_41.spec +++ b/dlls/d3dx9_41/d3dx9_41.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_42/d3dx9_42.spec b/dlls/d3dx9_42/d3dx9_42.spec index 45976222cde..c3bd9d52a2e 100644 --- a/dlls/d3dx9_42/d3dx9_42.spec +++ b/dlls/d3dx9_42/d3dx9_42.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long) diff --git a/dlls/d3dx9_43/d3dx9_43.spec b/dlls/d3dx9_43/d3dx9_43.spec index 45976222cde..c3bd9d52a2e 100644 --- a/dlls/d3dx9_43/d3dx9_43.spec +++ b/dlls/d3dx9_43/d3dx9_43.spec @@ -22,7 +22,7 @@ @ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) @ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stub D3DXComputeNormalMap(ptr ptr ptr long long float) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stub D3DXComputeTangent(ptr long long long long ptr) @ stub D3DXComputeTangentFrame(ptr long)
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- dlls/d3dx9_36/tests/surface.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c index f2855e8ddb8..324e2af3eb7 100644 --- a/dlls/d3dx9_36/tests/surface.c +++ b/dlls/d3dx9_36/tests/surface.c @@ -944,17 +944,22 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device) ok(SUCCEEDED(hr), "Failed to unlock surface, hr %#x.\n", hr);
/* Test D3DXLoadSurfaceFromMemory with indexed color image */ + if (0) + { + /* Crashes on Nvidia Win10. */ palette.peRed = bmp_1bpp[56]; palette.peGreen = bmp_1bpp[55]; palette.peBlue = bmp_1bpp[54]; palette.peFlags = bmp_1bpp[57]; /* peFlags is the alpha component in DX8 and higher */ - hr = D3DXLoadSurfaceFromMemory(surf, NULL, NULL, &bmp_1bpp[62], D3DFMT_P8, 4, (const PALETTEENTRY*)&palette, &rect, D3DX_FILTER_NONE, 0); + hr = D3DXLoadSurfaceFromMemory(surf, NULL, NULL, &bmp_1bpp[62], + D3DFMT_P8, 1, (const PALETTEENTRY *)&palette, &rect, D3DX_FILTER_NONE, 0); ok(hr == D3D_OK, "D3DXLoadSurfaceFromFileInMemory returned %#x, expected %#x\n", hr, D3D_OK); hr = IDirect3DSurface9_LockRect(surf, &lockrect, NULL, D3DLOCK_READONLY); ok(SUCCEEDED(hr), "Failed to lock surface, hr %#x\n", hr); ok(*(DWORD*)lockrect.pBits == 0x80f3f2f1, "Pixel color mismatch: got %#x, expected 0x80f3f2f1\n", *(DWORD*)lockrect.pBits); hr = IDirect3DSurface9_UnlockRect(surf); ok(SUCCEEDED(hr), "Failed to unlock surface, hr %#x\n", hr); + }
/* Test D3DXLoadSurfaceFromFileInMemory with indexed color image (alpha is not taken into account for bmp file) */ hr = D3DXLoadSurfaceFromFileInMemory(surf, NULL, NULL, bmp_1bpp, sizeof(bmp_1bpp), NULL, D3DX_FILTER_NONE, 0, NULL);
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- dlls/d3dx9_36/tests/texture.c | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-)
diff --git a/dlls/d3dx9_36/tests/texture.c b/dlls/d3dx9_36/tests/texture.c index 9ae0321548c..154c569f400 100644 --- a/dlls/d3dx9_36/tests/texture.c +++ b/dlls/d3dx9_36/tests/texture.c @@ -152,7 +152,7 @@ static BOOL is_autogenmipmap_supported(IDirect3DDevice9 *device, D3DRESOURCETYPE mode.Format, D3DUSAGE_AUTOGENMIPMAP, resource_type, D3DFMT_A8R8G8B8);
IDirect3D9_Release(d3d9); - return SUCCEEDED(hr); + return hr == D3D_OK; }
static void test_D3DXCheckTextureRequirements(IDirect3DDevice9 *device) @@ -626,25 +626,9 @@ static void test_D3DXCheckVolumeTextureRequirements(IDirect3DDevice9 *device) ok(hr == D3D_OK, "D3DXCheckVolumeTextureRequirements returned %#x, expected %#x\n", hr, D3D_OK); ok(mipmaps == 9, "Returned mipmaps %d, expected %d\n", mipmaps, 9);
- if (!is_autogenmipmap_supported(device, D3DRTYPE_VOLUMETEXTURE)) - { - skip("No D3DUSAGE_AUTOGENMIPMAP support for volume textures\n"); - return; - } - - /* mipmaps when D3DUSAGE_AUTOGENMIPMAP is set */ - mipmaps = 0; - hr = D3DXCheckVolumeTextureRequirements(device, NULL, NULL,NULL, &mipmaps, D3DUSAGE_AUTOGENMIPMAP, NULL, D3DPOOL_DEFAULT); - ok(hr == D3D_OK, "D3DXCheckVolumeTextureRequirements returned %#x, expected %#x\n", hr, D3D_OK); - ok(mipmaps == 0, "Returned mipmaps %d, expected %d\n", mipmaps, 0); - mipmaps = 1; - hr = D3DXCheckVolumeTextureRequirements(device, NULL, NULL,NULL, &mipmaps, D3DUSAGE_AUTOGENMIPMAP, NULL, D3DPOOL_DEFAULT); - ok(hr == D3D_OK, "D3DXCheckVolumeTextureRequirements returned %#x, expected %#x\n", hr, D3D_OK); - ok(mipmaps == 1, "Returned mipmaps %d, expected %d\n", mipmaps, 1); - mipmaps = 3; - hr = D3DXCheckVolumeTextureRequirements(device, NULL, NULL,NULL, &mipmaps, D3DUSAGE_AUTOGENMIPMAP, NULL, D3DPOOL_DEFAULT); - ok(hr == D3D_OK, "D3DXCheckVolumeTextureRequirements returned %#x, expected %#x\n", hr, D3D_OK); - ok(mipmaps == 0, "Returned mipmaps %d, expected %d\n", mipmaps, 0); + /* D3DUSAGE_AUTOGENMIPMAP is never supported for volume textures. */ + ok(!is_autogenmipmap_supported(device, D3DRTYPE_VOLUMETEXTURE), + "D3DUSAGE_AUTOGENMIPMAP is unexpectedly supported on volume textures.\n"); }
static void test_D3DXCreateTexture(IDirect3DDevice9 *device)
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- dlls/d3dx9_36/tests/texture.c | 138 ++++++++++++++++++------------------------ 1 file changed, 60 insertions(+), 78 deletions(-)
diff --git a/dlls/d3dx9_36/tests/texture.c b/dlls/d3dx9_36/tests/texture.c index 154c569f400..79cddc73ab6 100644 --- a/dlls/d3dx9_36/tests/texture.c +++ b/dlls/d3dx9_36/tests/texture.c @@ -1563,28 +1563,25 @@ static void test_D3DXCreateTextureFromFileInMemoryEx(IDirect3DDevice9 *device) hr = D3DXCreateTextureFromFileInMemoryEx(device, dds_16bit, sizeof(dds_16bit), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x\n", hr, D3D_OK); - if (SUCCEEDED(hr)) IDirect3DTexture9_Release(texture); + IDirect3DTexture9_Release(texture);
hr = D3DXCreateTextureFromFileInMemoryEx(device, dds_16bit, sizeof(dds_16bit), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, D3DUSAGE_DYNAMIC, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x\n", hr, D3D_OK); - if (SUCCEEDED(hr)) IDirect3DTexture9_Release(texture); + IDirect3DTexture9_Release(texture);
hr = D3DXCreateTextureFromFileInMemoryEx(device, dds_24bit, sizeof(dds_24bit), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, D3DUSAGE_DYNAMIC, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_SKIP_DDS_MIP_LEVELS(1, D3DX_FILTER_POINT), 0, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x\n", hr, D3D_OK); - if (SUCCEEDED(hr)) - { - miplevels = IDirect3DTexture9_GetLevelCount(texture); - ok(miplevels == 1, "Got miplevels %u, expected %u\n", miplevels, 1); - IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); - IDirect3DSurface9_GetDesc(surface, &desc); - ok(desc.Width == 1 && desc.Height == 1, - "Surface dimensions are %ux%u, expected 1x1.\n", desc.Width, desc.Height); - IDirect3DSurface9_Release(surface); - IDirect3DTexture9_Release(texture); - } + miplevels = IDirect3DTexture9_GetLevelCount(texture); + ok(miplevels == 1, "Got miplevels %u, expected %u.\n", miplevels, 1); + IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); + IDirect3DSurface9_GetDesc(surface, &desc); + ok(desc.Width == 1 && desc.Height == 1, + "Surface dimensions are %ux%u, expected 1x1.\n", desc.Width, desc.Height); + IDirect3DSurface9_Release(surface); + IDirect3DTexture9_Release(texture);
if (!is_autogenmipmap_supported(device, D3DRTYPE_TEXTURE)) { @@ -1595,110 +1592,92 @@ static void test_D3DXCreateTextureFromFileInMemoryEx(IDirect3DDevice9 *device) hr = D3DXCreateTextureFromFileInMemoryEx(device, dds_16bit, sizeof(dds_16bit), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, D3DUSAGE_DYNAMIC | D3DUSAGE_AUTOGENMIPMAP, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x\n", hr, D3D_OK); - if (SUCCEEDED(hr)) IDirect3DTexture9_Release(texture); + IDirect3DTexture9_Release(texture);
/* Checking for color key format overrides. */ hr = D3DXCreateTextureFromFileInMemoryEx(device, dds_16bit, sizeof(dds_16bit), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x.\n", hr, D3D_OK); - if (SUCCEEDED(hr)) - { - IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); - IDirect3DSurface9_GetDesc(surface, &desc); - ok(desc.Format == D3DFMT_X1R5G5B5, "Returned format %u, expected %u\n", desc.Format, D3DFMT_X1R5G5B5); - IDirect3DTexture9_Release(texture); - } + IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); + IDirect3DSurface9_GetDesc(surface, &desc); + ok(desc.Format == D3DFMT_X1R5G5B5, "Returned format %u, expected %u.\n", desc.Format, D3DFMT_X1R5G5B5); + IDirect3DSurface9_Release(surface); + IDirect3DTexture9_Release(texture); hr = D3DXCreateTextureFromFileInMemoryEx(device, dds_16bit, sizeof(dds_16bit), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0xff000000, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x.\n", hr, D3D_OK); - if (SUCCEEDED(hr)) - { - IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); - IDirect3DSurface9_GetDesc(surface, &desc); - ok(desc.Format == D3DFMT_A1R5G5B5, "Returned format %u, expected %u\n", desc.Format, D3DFMT_A1R5G5B5); - IDirect3DTexture9_Release(texture); - } + IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); + IDirect3DSurface9_GetDesc(surface, &desc); + ok(desc.Format == D3DFMT_A1R5G5B5, "Returned format %u, expected %u.\n", desc.Format, D3DFMT_A1R5G5B5); + IDirect3DSurface9_Release(surface); + IDirect3DTexture9_Release(texture); hr = D3DXCreateTextureFromFileInMemoryEx(device, dds_16bit, sizeof(dds_16bit), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_X1R5G5B5, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0xff000000, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x.\n", hr, D3D_OK); - if (SUCCEEDED(hr)) - { - IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); - IDirect3DSurface9_GetDesc(surface, &desc); - ok(desc.Format == D3DFMT_X1R5G5B5, "Returned format %u, expected %u\n", desc.Format, D3DFMT_X1R5G5B5); - IDirect3DTexture9_Release(texture); - } + IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); + IDirect3DSurface9_GetDesc(surface, &desc); + ok(desc.Format == D3DFMT_X1R5G5B5, "Returned format %u, expected %u.\n", desc.Format, D3DFMT_X1R5G5B5); + IDirect3DSurface9_Release(surface); + IDirect3DTexture9_Release(texture);
hr = D3DXCreateTextureFromFileInMemoryEx(device, dds_24bit, sizeof(dds_24bit), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x.\n", hr, D3D_OK); - if (SUCCEEDED(hr)) - { - IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); - IDirect3DSurface9_GetDesc(surface, &desc); - ok(desc.Format == D3DFMT_X8R8G8B8, "Returned format %u, expected %u\n", desc.Format, D3DFMT_X8R8G8B8); - IDirect3DTexture9_Release(texture); - } + IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); + IDirect3DSurface9_GetDesc(surface, &desc); + ok(desc.Format == D3DFMT_X8R8G8B8, "Returned format %u, expected %u.\n", desc.Format, D3DFMT_X8R8G8B8); + IDirect3DSurface9_Release(surface); + IDirect3DTexture9_Release(texture); hr = D3DXCreateTextureFromFileInMemoryEx(device, dds_24bit, sizeof(dds_24bit), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0xff000000, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x.\n", hr, D3D_OK); - if (SUCCEEDED(hr)) - { - IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); - IDirect3DSurface9_GetDesc(surface, &desc); - ok(desc.Format == D3DFMT_A8R8G8B8, "Returned format %u, expected %u\n", desc.Format, D3DFMT_A8R8G8B8); - IDirect3DTexture9_Release(texture); - } + IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); + IDirect3DSurface9_GetDesc(surface, &desc); + ok(desc.Format == D3DFMT_A8R8G8B8, "Returned format %u, expected %u.\n", desc.Format, D3DFMT_A8R8G8B8); + IDirect3DSurface9_Release(surface); + IDirect3DTexture9_Release(texture); hr = D3DXCreateTextureFromFileInMemoryEx(device, dds_24bit, sizeof(dds_24bit), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0xff000000, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x.\n", hr, D3D_OK); - if (SUCCEEDED(hr)) - { - IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); - IDirect3DSurface9_GetDesc(surface, &desc); - ok(desc.Format == D3DFMT_X8R8G8B8, "Returned format %u, expected %u\n", desc.Format, D3DFMT_X8R8G8B8); - IDirect3DTexture9_Release(texture); - } + IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); + IDirect3DSurface9_GetDesc(surface, &desc); + ok(desc.Format == D3DFMT_X8R8G8B8, "Returned format %u, expected %u.\n", desc.Format, D3DFMT_X8R8G8B8); + IDirect3DSurface9_Release(surface); + IDirect3DTexture9_Release(texture);
hr = D3DXCreateTextureFromFileInMemoryEx(device, png_grayscale, sizeof(png_grayscale), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x.\n", hr, D3D_OK); - if (SUCCEEDED(hr)) - { - IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); - IDirect3DSurface9_GetDesc(surface, &desc); - ok(desc.Format == D3DFMT_L8, "Returned format %u, expected %u\n", desc.Format, D3DFMT_L8); - IDirect3DTexture9_Release(texture); - } + IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); + IDirect3DSurface9_GetDesc(surface, &desc); + ok(desc.Format == D3DFMT_L8, "Returned format %u, expected %u.\n", desc.Format, D3DFMT_L8); + IDirect3DSurface9_Release(surface); + IDirect3DTexture9_Release(texture); hr = D3DXCreateTextureFromFileInMemoryEx(device, png_grayscale, sizeof(png_grayscale), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0xff000000, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x.\n", hr, D3D_OK); - if (SUCCEEDED(hr)) - { - IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); - IDirect3DSurface9_GetDesc(surface, &desc); - ok(desc.Format == D3DFMT_A8L8, "Returned format %u, expected %u\n", desc.Format, D3DFMT_A8L8); - IDirect3DTexture9_Release(texture); - } + IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); + IDirect3DSurface9_GetDesc(surface, &desc); + ok(desc.Format == D3DFMT_A8L8, "Returned format %u, expected %u.\n", desc.Format, D3DFMT_A8L8); + IDirect3DSurface9_Release(surface); + IDirect3DTexture9_Release(texture); hr = D3DXCreateTextureFromFileInMemoryEx(device, png_grayscale, sizeof(png_grayscale), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_L8, D3DPOOL_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0xff000000, NULL, NULL, &texture); ok(hr == D3D_OK, "D3DXCreateTextureFromFileInMemoryEx returned %#x, expected %#x.\n", hr, D3D_OK); - if (SUCCEEDED(hr)) - { - IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); - IDirect3DSurface9_GetDesc(surface, &desc); - ok(desc.Format == D3DFMT_L8, "Returned format %u, expected %u\n", desc.Format, D3DFMT_L8); - IDirect3DTexture9_Release(texture); - } + IDirect3DTexture9_GetSurfaceLevel(texture, 0, &surface); + IDirect3DSurface9_GetDesc(surface, &desc); + ok(desc.Format == D3DFMT_L8, "Returned format %u, expected %u.\n", desc.Format, D3DFMT_L8); + IDirect3DSurface9_Release(surface); + IDirect3DTexture9_Release(texture); }
static void test_D3DXCreateCubeTextureFromFileInMemory(IDirect3DDevice9 *device) @@ -2222,6 +2201,7 @@ START_TEST(texture) IDirect3DDevice9 *device; D3DPRESENT_PARAMETERS d3dpp; HRESULT hr; + ULONG ref;
if (!(wnd = CreateWindowA("static", "d3dx9_test", WS_OVERLAPPEDWINDOW, 0, 0, 640, 480, NULL, NULL, NULL, NULL))) @@ -2274,7 +2254,9 @@ START_TEST(texture) test_D3DXCreateVolumeTextureFromFileInMemory(device); test_D3DXSaveTextureToFileInMemory(device);
- IDirect3DDevice9_Release(device); + ref = IDirect3DDevice9_Release(device); + ok(!ref, "Device has %u references left.\n", ref); + IDirect3D9_Release(d3d); DestroyWindow(wnd);
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- We'll probably want to rework d3dx*_* DLLs to share more code at some point but, for the time being, this will help.
Please rerun make_specfiles after applying the patch :)
tools/make_specfiles | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/tools/make_specfiles b/tools/make_specfiles index cf685b6b85a..cdbc92b4325 100755 --- a/tools/make_specfiles +++ b/tools/make_specfiles @@ -92,6 +92,10 @@ my @dll_groups = "d3dx10_33", ], [ + "d3dx11_43", + "d3dx11_42", + ], + [ "xinput1_3", "xinput1_4", "xinput1_2",