[2/5] d3dx9: Forward D3DXSaveSurfaceToFileA to D3DXSaveSurfaceToFileW.
Józef Kucia
joseph.kucia at gmail.com
Wed May 2 16:32:04 CDT 2012
---
dlls/d3dx9_36/surface.c | 24 ++++++++++++++++++++----
1 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c
index 44d4e06..70627fd 100644
--- a/dlls/d3dx9_36/surface.c
+++ b/dlls/d3dx9_36/surface.c
@@ -1364,11 +1364,27 @@ HRESULT WINAPI D3DXLoadSurfaceFromSurface(LPDIRECT3DSURFACE9 pDestSurface,
}
-HRESULT WINAPI D3DXSaveSurfaceToFileA(LPCSTR pDestFile, D3DXIMAGE_FILEFORMAT DestFormat,
- LPDIRECT3DSURFACE9 pSrcSurface, const PALETTEENTRY* pSrcPalette, const RECT* pSrcRect)
+HRESULT WINAPI D3DXSaveSurfaceToFileA(LPCSTR dst_filename, D3DXIMAGE_FILEFORMAT file_format,
+ IDirect3DSurface9 *src_surface, const PALETTEENTRY *src_palette, const RECT *src_rect)
{
- FIXME("(%p, %d, %p, %p, %p): stub\n", pDestFile, DestFormat, pSrcSurface, pSrcPalette, pSrcRect);
- return D3DERR_INVALIDCALL;
+ int len;
+ LPWSTR filename;
+ HRESULT hr;
+
+ TRACE("(%s, %d, %p, %p, %p): relay\n",
+ wine_dbgstr_a(dst_filename), file_format, src_surface, src_palette, src_rect);
+
+ if (!dst_filename) return D3DERR_INVALIDCALL;
+
+ len = MultiByteToWideChar(CP_ACP, 0, dst_filename, -1, NULL, 0);
+ filename = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len * sizeof(WCHAR));
+ if (!filename) return E_OUTOFMEMORY;
+ MultiByteToWideChar(CP_ACP, 0, dst_filename, -1, filename, len);
+
+ hr = D3DXSaveSurfaceToFileW(filename, file_format, src_surface, src_palette, src_rect);
+
+ HeapFree(GetProcessHeap(), 0, filename);
+ return hr;
}
HRESULT WINAPI D3DXSaveSurfaceToFileW(LPCWSTR pDestFile, D3DXIMAGE_FILEFORMAT DestFormat,
--
1.7.8.6
More information about the wine-patches
mailing list