Matteo Bruni : d3dx9: Implement D3DXCompileShaderFromResource.

Alexandre Julliard julliard at winehq.org
Thu Sep 2 12:01:26 CDT 2010


Module: wine
Branch: master
Commit: 5a5af75f04e2df1813936af24a84dd6a2da20a49
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5a5af75f04e2df1813936af24a84dd6a2da20a49

Author: Matteo Bruni <matteo.mystral at gmail.com>
Date:   Wed Sep  1 23:15:44 2010 +0200

d3dx9: Implement D3DXCompileShaderFromResource.

---

 dlls/d3dx9_36/shader.c |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
index d6e3ecc..1ddcde7 100644
--- a/dlls/d3dx9_36/shader.c
+++ b/dlls/d3dx9_36/shader.c
@@ -458,6 +458,52 @@ HRESULT WINAPI D3DXCompileShaderFromFileW(LPCWSTR filename,
     return hr;
 }
 
+HRESULT WINAPI D3DXCompileShaderFromResourceA(HMODULE module,
+                                              LPCSTR resource,
+                                              CONST D3DXMACRO* defines,
+                                              LPD3DXINCLUDE include,
+                                              LPCSTR entrypoint,
+                                              LPCSTR profile,
+                                              DWORD flags,
+                                              LPD3DXBUFFER* shader,
+                                              LPD3DXBUFFER* error_messages,
+                                              LPD3DXCONSTANTTABLE* constant_table)
+{
+    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 D3DXCompileShader(buffer, len, defines, include, entrypoint, profile,
+                             flags, shader, error_messages, constant_table);
+}
+
+HRESULT WINAPI D3DXCompileShaderFromResourceW(HMODULE module,
+                                              LPCWSTR resource,
+                                              CONST D3DXMACRO* defines,
+                                              LPD3DXINCLUDE include,
+                                              LPCSTR entrypoint,
+                                              LPCSTR profile,
+                                              DWORD flags,
+                                              LPD3DXBUFFER* shader,
+                                              LPD3DXBUFFER* error_messages,
+                                              LPD3DXCONSTANTTABLE* constant_table)
+{
+    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 D3DXCompileShader(buffer, len, defines, include, entrypoint, profile,
+                             flags, shader, error_messages, constant_table);
+}
+
 static const struct ID3DXConstantTableVtbl ID3DXConstantTable_Vtbl;
 
 typedef struct ID3DXConstantTableImpl {




More information about the wine-cvs mailing list