[3/3] d3dx9: Implement D3DXCompileShaderFromResource.
Matteo Bruni
matteo.mystral at gmail.com
Wed Sep 1 18:05:26 CDT 2010
-------------- next part --------------
From 4510d4311cf07e61bd046e54e1649f6ec80f2396 Mon Sep 17 00:00:00 2001
From: Matteo Bruni <matteo.mystral at gmail.com>
Date: Wed, 1 Sep 2010 23:15:44 +0200
Subject: 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 {
--
1.7.1
More information about the wine-patches
mailing list