From b577dc22c73898697c13053e5a034dfba5df8ac7 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Wed, 25 May 2022 18:33:39 +0200 Subject: [PATCH] d3dx10: Support ID3DX10ThreadPump parameter in D3DX10GetImageInfoFromMemory. Signed-off-by: Piotr Caban --- dlls/d3dx10_43/texture.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/dlls/d3dx10_43/texture.c b/dlls/d3dx10_43/texture.c index 52d1331d30e..9c7762bc617 100644 --- a/dlls/d3dx10_43/texture.c +++ b/dlls/d3dx10_43/texture.c @@ -544,8 +544,26 @@ HRESULT WINAPI D3DX10GetImageInfoFromMemory(const void *src_data, SIZE_T src_dat if (!src_data) return E_FAIL; + if (pump) - FIXME("Thread pump is not supported yet.\n"); + { + ID3DX10DataProcessor *processor; + ID3DX10DataLoader *loader; + + if (FAILED((hr = D3DX10CreateAsyncMemoryLoader(src_data, src_data_size, &loader)))) + return hr; + if (FAILED((hr = D3DX10CreateAsyncTextureInfoProcessor(img_info, &processor)))) + { + ID3DX10DataLoader_Destroy(loader); + return hr; + } + if (FAILED((hr = ID3DX10ThreadPump_AddWorkItem(pump, loader, processor, result, NULL)))) + { + ID3DX10DataLoader_Destroy(loader); + ID3DX10DataProcessor_Destroy(processor); + } + return hr; + } hr = get_image_info(src_data, src_data_size, img_info); if (result)