Matteo Bruni : d3dx9: D3DXAssembleShaderFromResource implementation.
Alexandre Julliard
julliard at winehq.org
Mon Oct 19 09:56:12 CDT 2009
Module: wine
Branch: master
Commit: cbcf69985686f781819a285bdab9df3e02e14107
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cbcf69985686f781819a285bdab9df3e02e14107
Author: Matteo Bruni <matteo.mystral at gmail.com>
Date: Tue Sep 15 20:23:00 2009 +0200
d3dx9: D3DXAssembleShaderFromResource implementation.
---
dlls/d3dx9_36/d3dx9_36.spec | 4 ++--
dlls/d3dx9_36/shader.c | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 43 insertions(+), 2 deletions(-)
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
index 0d39114..08bb7f5 100644
--- a/dlls/d3dx9_36/d3dx9_36.spec
+++ b/dlls/d3dx9_36/d3dx9_36.spec
@@ -1,8 +1,8 @@
@ 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 D3DXAssembleShaderFromResourceA(long str ptr ptr long ptr ptr)
+@ stdcall D3DXAssembleShaderFromResourceW(long wstr ptr ptr long ptr ptr)
@ stdcall D3DXBoxBoundProbe(ptr ptr ptr ptr)
@ stub D3DXCheckCubeTextureRequirements
@ stub D3DXCheckTextureRequirements
diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
index 97b2384..c05f7b7 100644
--- a/dlls/d3dx9_36/shader.c
+++ b/dlls/d3dx9_36/shader.c
@@ -23,6 +23,7 @@
#include "windef.h"
#include "wingdi.h"
#include "d3dx9.h"
+#include "d3dx9_36_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(d3dx);
@@ -179,3 +180,43 @@ HRESULT WINAPI D3DXAssembleShaderFromFileW(LPCWSTR filename,
FIXME("stub\n");
return D3DERR_INVALIDCALL;
}
+
+HRESULT WINAPI D3DXAssembleShaderFromResourceA(HMODULE module,
+ LPCSTR resource,
+ CONST D3DXMACRO* defines,
+ LPD3DXINCLUDE include,
+ DWORD flags,
+ LPD3DXBUFFER* shader,
+ LPD3DXBUFFER* error_messages)
+{
+ HRSRC res;
+ LPCSTR buffer;
+ DWORD len;
+
+ if (!(res = FindResourceA(module, resource, (LPCSTR)RT_RCDATA)))
+ return D3DXERR_INVALIDDATA;
+ if (FAILED(load_resource_into_memory(module, res, (LPVOID *)&buffer, &len)))
+ return D3DXERR_INVALIDDATA;
+ return D3DXAssembleShader(buffer, len, defines, include, flags,
+ shader, error_messages);
+}
+
+HRESULT WINAPI D3DXAssembleShaderFromResourceW(HMODULE module,
+ LPCWSTR resource,
+ CONST D3DXMACRO* defines,
+ LPD3DXINCLUDE include,
+ DWORD flags,
+ LPD3DXBUFFER* shader,
+ LPD3DXBUFFER* error_messages)
+{
+ HRSRC res;
+ LPCSTR buffer;
+ DWORD len;
+
+ if (!(res = FindResourceW(module, resource, (LPCWSTR)RT_RCDATA)))
+ return D3DXERR_INVALIDDATA;
+ if (FAILED(load_resource_into_memory(module, res, (LPVOID *)&buffer, &len)))
+ return D3DXERR_INVALIDDATA;
+ return D3DXAssembleShader(buffer, len, defines, include, flags,
+ shader, error_messages);
+}
More information about the wine-cvs
mailing list