[PATCH 2/6] d3dx10: Add D3DX10LoadTextureFromTexture() stub.
Matteo Bruni
mbruni at codeweavers.com
Wed Nov 6 03:06:30 CST 2019
From: Connor McAdams <conmanx360 at gmail.com>
Signed-off-by: Connor McAdams <conmanx360 at gmail.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
---
This fixes a crash in Crysis when run in DX10 mode.
dlls/d3dx10_43/d3dx10_43.spec | 2 +-
dlls/d3dx10_43/d3dx10_43_main.c | 8 ++++++++
include/d3dx10tex.h | 34 +++++++++++++++++++++++++++++++--
3 files changed, 41 insertions(+), 3 deletions(-)
diff --git a/dlls/d3dx10_43/d3dx10_43.spec b/dlls/d3dx10_43/d3dx10_43.spec
index cb491241d4b..36c7633d8e0 100644
--- a/dlls/d3dx10_43/d3dx10_43.spec
+++ b/dlls/d3dx10_43/d3dx10_43.spec
@@ -54,7 +54,7 @@
@ stdcall D3DX10GetImageInfoFromMemory(ptr long ptr ptr ptr)
@ stub D3DX10GetImageInfoFromResourceA(long str ptr ptr ptr)
@ stub D3DX10GetImageInfoFromResourceW(long wstr ptr ptr ptr)
-@ stub D3DX10LoadTextureFromTexture(ptr ptr ptr)
+@ stdcall D3DX10LoadTextureFromTexture(ptr ptr ptr)
@ stub D3DX10PreprocessShaderFromFileA(str ptr ptr ptr ptr ptr)
@ stub D3DX10PreprocessShaderFromFileW(wstr ptr ptr ptr ptr ptr)
@ stdcall D3DX10PreprocessShaderFromMemory(ptr long str ptr ptr ptr ptr ptr ptr)
diff --git a/dlls/d3dx10_43/d3dx10_43_main.c b/dlls/d3dx10_43/d3dx10_43_main.c
index b0295cc093f..45247756b8e 100644
--- a/dlls/d3dx10_43/d3dx10_43_main.c
+++ b/dlls/d3dx10_43/d3dx10_43_main.c
@@ -241,3 +241,11 @@ D3DX_CPU_OPTIMIZATION WINAPI D3DXCpuOptimizations(BOOL enable)
return D3DX_NOT_OPTIMIZED;
}
+
+HRESULT WINAPI D3DX10LoadTextureFromTexture(ID3D10Resource *src_texture, D3DX10_TEXTURE_LOAD_INFO *load_info,
+ ID3D10Resource *dst_texture)
+{
+ FIXME("src_texture %p, load_info %p, dst_texture %p stub!\n", src_texture, load_info, dst_texture);
+
+ return E_NOTIMPL;
+}
diff --git a/include/d3dx10tex.h b/include/d3dx10tex.h
index 25ad490949a..98cb82c0c93 100644
--- a/include/d3dx10tex.h
+++ b/include/d3dx10tex.h
@@ -103,17 +103,47 @@ typedef struct D3DX10_IMAGE_LOAD_INFO
#endif
} D3DX10_IMAGE_LOAD_INFO;
+typedef struct _D3DX10_TEXTURE_LOAD_INFO
+{
+ D3D10_BOX *pSrcBox;
+ D3D10_BOX *pDstBox;
+ UINT SrcFirstMip;
+ UINT DstFirstMip;
+ UINT NumMips;
+ UINT SrcFirstElement;
+ UINT DstFirstElement;
+ UINT NumElements;
+ UINT Filter;
+ UINT MipFilter;
+
+#ifdef __cplusplus
+ _D3DX10_TEXTURE_LOAD_INFO()
+ {
+ pSrcBox = NULL;
+ pDstBox = NULL;
+ SrcFirstMip = 0;
+ DstFirstMip = 0;
+ NumMips = D3DX10_DEFAULT;
+ SrcFirstElement = 0;
+ DstFirstElement = 0;
+ NumElements = D3DX10_DEFAULT;
+ Filter = D3DX10_DEFAULT;
+ MipFilter = D3DX10_DEFAULT;
+ }
+#endif
+} D3DX10_TEXTURE_LOAD_INFO;
+
#ifdef __cplusplus
extern "C" {
#endif
HRESULT WINAPI D3DX10CreateTextureFromMemory(ID3D10Device *device, const void *src_data, SIZE_T src_data_size,
D3DX10_IMAGE_LOAD_INFO *loadinfo, ID3DX10ThreadPump *pump, ID3D10Resource **texture, HRESULT *hresult);
-
HRESULT WINAPI D3DX10FilterTexture(ID3D10Resource *texture, UINT src_level, UINT filter);
-
HRESULT WINAPI D3DX10GetImageInfoFromMemory(const void *src_data, SIZE_T src_data_size, ID3DX10ThreadPump *pump,
D3DX10_IMAGE_INFO *img_info, HRESULT *hresult);
+HRESULT WINAPI D3DX10LoadTextureFromTexture(ID3D10Resource *src_texture, D3DX10_TEXTURE_LOAD_INFO *load_info,
+ ID3D10Resource *dst_texture);
#ifdef __cplusplus
}
--
2.21.0
More information about the wine-devel
mailing list