[2/4] d3dx9: D3DXAssembleShader and D3DXAssembleShaderFromFile stubs

Matteo Bruni matteo.mystral at gmail.com
Fri Aug 21 16:06:41 CDT 2009


-------------- next part --------------
From 91a9adf01b3c0a4e9fda0664d20e836d53844033 Mon Sep 17 00:00:00 2001
From: Matteo Bruni <matteo.mystral at gmail.com>
Date: Fri, 21 Aug 2009 17:14:49 +0200
Subject: d3dx9: D3DXAssembleShader and D3DXAssembleShaderFromFile stubs

---
 dlls/d3dx9_36/d3dx9_36.spec |    6 ++--
 dlls/d3dx9_36/shader.c      |   44 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
index d3fe3ac..0d39114 100644
--- a/dlls/d3dx9_36/d3dx9_36.spec
+++ b/dlls/d3dx9_36/d3dx9_36.spec
@@ -1,6 +1,6 @@
-@ stub D3DXAssembleShader
-@ stub D3DXAssembleShaderFromFileA
-@ stub D3DXAssembleShaderFromFileW
+@ stdcall D3DXAssembleShader(ptr long ptr ptr long ptr ptr)
+@ stdcall D3DXAssembleShaderFromFileA(str ptr ptr long ptr ptr)
+@ stdcall D3DXAssembleShaderFromFileW(wstr ptr ptr long ptr ptr)
 @ stub D3DXAssembleShaderFromResourceA
 @ stub D3DXAssembleShaderFromResourceW
 @ stdcall D3DXBoxBoundProbe(ptr ptr ptr ptr)
diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
index 48499ac..f9b0fe2 100644
--- a/dlls/d3dx9_36/shader.c
+++ b/dlls/d3dx9_36/shader.c
@@ -19,6 +19,7 @@
 #include "config.h"
 #include "wine/port.h"
 #include "wine/debug.h"
+#include "wine/unicode.h"
 #include "windef.h"
 #include "wingdi.h"
 #include "d3dx9.h"
@@ -131,3 +132,46 @@ LPCSTR WINAPI D3DXGetVertexShaderProfile(LPDIRECT3DDEVICE9 device)
 
     return NULL;
 }
+
+HRESULT WINAPI D3DXAssembleShader(LPCSTR pSrcData, UINT SrcDataLen,
+                                  CONST D3DXMACRO* pDefines,
+                                  LPD3DXINCLUDE pInclude,
+                                  DWORD Flags,
+                                  LPD3DXBUFFER* ppShader,
+                                  LPD3DXBUFFER* ppErrorMsgs)
+{
+    FIXME("stub\n");
+    return D3DERR_INVALIDCALL;
+}
+
+HRESULT WINAPI D3DXAssembleShaderFromFileA(LPCSTR pSrcFile,
+                                           CONST D3DXMACRO* pDefines,
+                                           LPD3DXINCLUDE pInclude,
+                                           DWORD Flags,
+                                           LPD3DXBUFFER* ppShader,
+                                           LPD3DXBUFFER* ppErrorMsgs)
+{
+    LPWSTR pSrcFileW = NULL;
+    DWORD len;
+    HRESULT ret;
+
+    if (!pSrcFile) return D3DXERR_INVALIDDATA;
+
+    len = MultiByteToWideChar( CP_ACP, 0, pSrcFile, -1, NULL, 0 );
+    pSrcFileW = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) );
+    MultiByteToWideChar( CP_ACP, 0, pSrcFile, -1, pSrcFileW, len );
+    ret=D3DXAssembleShaderFromFileW(pSrcFileW, pDefines, pInclude, Flags, ppShader, ppErrorMsgs);
+    HeapFree( GetProcessHeap(), 0, pSrcFileW );
+    return ret;
+}
+
+HRESULT WINAPI D3DXAssembleShaderFromFileW(LPCWSTR pSrcFile,
+                                           CONST D3DXMACRO* pDefines,
+                                           LPD3DXINCLUDE pInclude,
+                                           DWORD Flags,
+                                           LPD3DXBUFFER* ppShader,
+                                           LPD3DXBUFFER* ppErrorMsgs)
+{
+    FIXME("stub\n");
+    return D3DERR_INVALIDCALL;
+}
-- 
1.6.3.3


More information about the wine-patches mailing list