=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: d3dx9: Forward D3DXSaveTextureToFile to D3DXSaveTextureToFileInMemory.
Alexandre Julliard
julliard at winehq.org
Thu May 31 13:30:41 CDT 2012
Module: wine
Branch: master
Commit: dfc5ab140c3211d73239352253ee0f80a960dfd7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=dfc5ab140c3211d73239352253ee0f80a960dfd7
Author: Józef Kucia <joseph.kucia at gmail.com>
Date: Tue May 29 11:29:23 2012 +0200
d3dx9: Forward D3DXSaveTextureToFile to D3DXSaveTextureToFileInMemory.
---
dlls/d3dx9_36/d3dx9_36.spec | 6 ++--
dlls/d3dx9_36/texture.c | 61 +++++++++++++++++++++++++++++++++++++++++++
include/d3dx9tex.h | 5 +++
3 files changed, 69 insertions(+), 3 deletions(-)
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
index 44efaf5..aec2a5c 100644
--- a/dlls/d3dx9_36/d3dx9_36.spec
+++ b/dlls/d3dx9_36/d3dx9_36.spec
@@ -266,9 +266,9 @@
@ stdcall D3DXSaveSurfaceToFileA(ptr long ptr ptr ptr)
@ stdcall D3DXSaveSurfaceToFileInMemory(ptr long ptr ptr ptr)
@ stdcall D3DXSaveSurfaceToFileW(ptr long ptr ptr ptr)
-@ stub D3DXSaveTextureToFileA(ptr long ptr ptr)
-@ stub D3DXSaveTextureToFileInMemory(ptr long ptr ptr)
-@ stub D3DXSaveTextureToFileW(ptr long ptr ptr)
+@ stdcall D3DXSaveTextureToFileA(ptr long ptr ptr)
+@ stdcall D3DXSaveTextureToFileInMemory(ptr long ptr ptr)
+@ stdcall D3DXSaveTextureToFileW(ptr long ptr ptr)
@ stub D3DXSaveVolumeToFileA(ptr long ptr ptr ptr)
@ stub D3DXSaveVolumeToFileInMemory(ptr long ptr ptr ptr)
@ stub D3DXSaveVolumeToFileW(ptr long ptr ptr ptr)
diff --git a/dlls/d3dx9_36/texture.c b/dlls/d3dx9_36/texture.c
index c17a327..97d26d9 100644
--- a/dlls/d3dx9_36/texture.c
+++ b/dlls/d3dx9_36/texture.c
@@ -1606,3 +1606,64 @@ HRESULT WINAPI D3DXFillVolumeTexture(LPDIRECT3DVOLUMETEXTURE9 texture,
return D3D_OK;
}
+
+HRESULT WINAPI D3DXSaveTextureToFileA(const char *dst_filename, D3DXIMAGE_FILEFORMAT file_format,
+ IDirect3DBaseTexture9 *src_texture, const PALETTEENTRY *src_palette)
+{
+ int len;
+ WCHAR *filename;
+ HRESULT hr;
+ ID3DXBuffer *buffer;
+
+ TRACE("(%s, %#x, %p, %p): relay\n",
+ wine_dbgstr_a(dst_filename), file_format, src_texture, src_palette);
+
+ if (!dst_filename) return D3DERR_INVALIDCALL;
+
+ len = MultiByteToWideChar(CP_ACP, 0, dst_filename, -1, NULL, 0);
+ filename = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+ if (!filename) return E_OUTOFMEMORY;
+ MultiByteToWideChar(CP_ACP, 0, dst_filename, -1, filename, len);
+
+ hr = D3DXSaveTextureToFileInMemory(&buffer, file_format, src_texture, src_palette);
+ if (SUCCEEDED(hr))
+ {
+ hr = write_buffer_to_file(filename, buffer);
+ ID3DXBuffer_Release(buffer);
+ }
+
+ HeapFree(GetProcessHeap(), 0, filename);
+ return hr;
+}
+
+HRESULT WINAPI D3DXSaveTextureToFileW(const WCHAR *dst_filename, D3DXIMAGE_FILEFORMAT file_format,
+ IDirect3DBaseTexture9 *src_texture, const PALETTEENTRY *src_palette)
+{
+ HRESULT hr;
+ ID3DXBuffer *buffer;
+
+ TRACE("(%s, %#x, %p, %p): relay\n",
+ wine_dbgstr_w(dst_filename), file_format, src_texture, src_palette);
+
+ if (!dst_filename) return D3DERR_INVALIDCALL;
+
+ hr = D3DXSaveTextureToFileInMemory(&buffer, file_format, src_texture, src_palette);
+ if (SUCCEEDED(hr))
+ {
+ hr = write_buffer_to_file(dst_filename, buffer);
+ ID3DXBuffer_Release(buffer);
+ }
+
+ return hr;
+}
+
+HRESULT WINAPI D3DXSaveTextureToFileInMemory(ID3DXBuffer **dst_buffer, D3DXIMAGE_FILEFORMAT file_format,
+ IDirect3DBaseTexture9 *src_texture, const PALETTEENTRY *src_palette)
+{
+ FIXME("(%p, %#x, %p, %p): stub\n",
+ dst_buffer, file_format, src_texture, src_palette);
+
+ if (!dst_buffer || !src_texture) return D3DERR_INVALIDCALL;
+
+ return E_NOTIMPL;
+}
diff --git a/include/d3dx9tex.h b/include/d3dx9tex.h
index 0e89021..38441ce 100644
--- a/include/d3dx9tex.h
+++ b/include/d3dx9tex.h
@@ -638,6 +638,11 @@ HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemoryEx(LPDIRECT3DDEVICE9 devic
PALETTEENTRY *palette,
LPDIRECT3DVOLUMETEXTURE9 *volume);
+HRESULT WINAPI D3DXSaveTextureToFileInMemory(LPD3DXBUFFER *destbuffer,
+ D3DXIMAGE_FILEFORMAT destformat,
+ LPDIRECT3DBASETEXTURE9 srctexture,
+ CONST PALETTEENTRY *srcpalette);
+
HRESULT WINAPI D3DXSaveTextureToFileA(LPCSTR destfile,
D3DXIMAGE_FILEFORMAT destformat,
LPDIRECT3DBASETEXTURE9 srctexture,
More information about the wine-cvs
mailing list