[PATCH 3/5] d3dx9: Avoid LPD3DXCONSTANTTABLE.

Henri Verbeet hverbeet at codeweavers.com
Thu Nov 22 14:13:36 CST 2012


---
 dlls/d3dx9_36/effect.c       |    3 +-
 dlls/d3dx9_36/shader.c       |   70 ++++++++++-------------------------------
 dlls/d3dx9_36/tests/shader.c |    2 +-
 include/d3dx9effect.h        |    4 +-
 include/d3dx9shader.h        |   72 ++++++++++-------------------------------
 5 files changed, 40 insertions(+), 111 deletions(-)

diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
index 0911e35..f49d5c3 100644
--- a/dlls/d3dx9_36/effect.c
+++ b/dlls/d3dx9_36/effect.c
@@ -4405,7 +4405,8 @@ static HRESULT WINAPI ID3DXEffectCompilerImpl_CompileEffect(ID3DXEffectCompiler
 }
 
 static HRESULT WINAPI ID3DXEffectCompilerImpl_CompileShader(ID3DXEffectCompiler *iface, D3DXHANDLE function,
-        LPCSTR target, DWORD flags, LPD3DXBUFFER *shader, LPD3DXBUFFER *error_msgs, LPD3DXCONSTANTTABLE *constant_table)
+        const char *target, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_msgs,
+        ID3DXConstantTable **constant_table)
 {
     struct ID3DXEffectCompilerImpl *This = impl_from_ID3DXEffectCompiler(iface);
 
diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
index 3c92992..a64559f 100644
--- a/dlls/d3dx9_36/shader.c
+++ b/dlls/d3dx9_36/shader.c
@@ -368,16 +368,9 @@ HRESULT WINAPI D3DXAssembleShaderFromResourceW(HMODULE module,
                               shader, error_messages);
 }
 
-HRESULT WINAPI D3DXCompileShader(LPCSTR pSrcData,
-                                 UINT srcDataLen,
-                                 CONST D3DXMACRO* pDefines,
-                                 LPD3DXINCLUDE pInclude,
-                                 LPCSTR pFunctionName,
-                                 LPCSTR pProfile,
-                                 DWORD Flags,
-                                 LPD3DXBUFFER* ppShader,
-                                 LPD3DXBUFFER* ppErrorMsgs,
-                                 LPD3DXCONSTANTTABLE * ppConstantTable)
+HRESULT WINAPI D3DXCompileShader(const char *pSrcData, UINT srcDataLen, const D3DXMACRO *pDefines,
+        ID3DXInclude *pInclude, const char *pFunctionName, const char *pProfile, DWORD Flags,
+        ID3DXBuffer **ppShader, ID3DXBuffer **ppErrorMsgs, ID3DXConstantTable **ppConstantTable)
 {
     HRESULT hr = D3DCompile(pSrcData, srcDataLen, NULL,
                             (D3D_SHADER_MACRO *)pDefines, (ID3DInclude *)pInclude,
@@ -390,15 +383,9 @@ HRESULT WINAPI D3DXCompileShader(LPCSTR pSrcData,
     return hr;
 }
 
-HRESULT WINAPI D3DXCompileShaderFromFileA(LPCSTR filename,
-                                          CONST D3DXMACRO* defines,
-                                          LPD3DXINCLUDE include,
-                                          LPCSTR entrypoint,
-                                          LPCSTR profile,
-                                          DWORD flags,
-                                          LPD3DXBUFFER* shader,
-                                          LPD3DXBUFFER* error_messages,
-                                          LPD3DXCONSTANTTABLE* constant_table)
+HRESULT WINAPI D3DXCompileShaderFromFileA(const char *filename, const D3DXMACRO *defines,
+        ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+        ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table)
 {
     LPWSTR filename_w = NULL;
     DWORD len;
@@ -419,15 +406,9 @@ HRESULT WINAPI D3DXCompileShaderFromFileA(LPCSTR filename,
     return ret;
 }
 
-HRESULT WINAPI D3DXCompileShaderFromFileW(LPCWSTR filename,
-                                          CONST D3DXMACRO* defines,
-                                          LPD3DXINCLUDE include,
-                                          LPCSTR entrypoint,
-                                          LPCSTR profile,
-                                          DWORD flags,
-                                          LPD3DXBUFFER* shader,
-                                          LPD3DXBUFFER* error_messages,
-                                          LPD3DXCONSTANTTABLE* constant_table)
+HRESULT WINAPI D3DXCompileShaderFromFileW(const WCHAR *filename, const D3DXMACRO *defines,
+        ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+        ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table)
 {
     void *buffer;
     DWORD len, filename_len;
@@ -466,16 +447,9 @@ 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)
+HRESULT WINAPI D3DXCompileShaderFromResourceA(HMODULE module, const char *resource, const D3DXMACRO *defines,
+        ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+        ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table)
 {
     HRSRC res;
     LPCSTR buffer;
@@ -489,16 +463,9 @@ HRESULT WINAPI D3DXCompileShaderFromResourceA(HMODULE module,
                              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)
+HRESULT WINAPI D3DXCompileShaderFromResourceW(HMODULE module, const WCHAR *resource, const D3DXMACRO *defines,
+        ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+        ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table)
 {
     HRSRC res;
     LPCSTR buffer;
@@ -1688,9 +1655,7 @@ error:
     return hr;
 }
 
-HRESULT WINAPI D3DXGetShaderConstantTableEx(CONST DWORD *byte_code,
-                                            DWORD flags,
-                                            LPD3DXCONSTANTTABLE *constant_table)
+HRESULT WINAPI D3DXGetShaderConstantTableEx(const DWORD *byte_code, DWORD flags, ID3DXConstantTable **constant_table)
 {
     struct ID3DXConstantTableImpl *object = NULL;
     HRESULT hr;
@@ -1790,8 +1755,7 @@ error:
     return hr;
 }
 
-HRESULT WINAPI D3DXGetShaderConstantTable(CONST DWORD* byte_code,
-                                          LPD3DXCONSTANTTABLE* constant_table)
+HRESULT WINAPI D3DXGetShaderConstantTable(const DWORD *byte_code, ID3DXConstantTable **constant_table)
 {
     TRACE("(%p, %p): Forwarded to D3DXGetShaderConstantTableEx\n", byte_code, constant_table);
 
diff --git a/dlls/d3dx9_36/tests/shader.c b/dlls/d3dx9_36/tests/shader.c
index 32fab94..75139b1 100644
--- a/dlls/d3dx9_36/tests/shader.c
+++ b/dlls/d3dx9_36/tests/shader.c
@@ -334,7 +334,7 @@ static void test_find_shader_comment(void)
 
 static void test_get_shader_constant_table_ex(void)
 {
-    LPD3DXCONSTANTTABLE constant_table = NULL;
+    ID3DXConstantTable *constant_table = NULL;
     HRESULT hr;
     LPVOID data;
     DWORD size;
diff --git a/include/d3dx9effect.h b/include/d3dx9effect.h
index edf933f..949adb9 100644
--- a/include/d3dx9effect.h
+++ b/include/d3dx9effect.h
@@ -354,8 +354,8 @@ DECLARE_INTERFACE_(ID3DXEffectCompiler, ID3DXBaseEffect)
     STDMETHOD(SetLiteral)(THIS_ D3DXHANDLE parameter, BOOL literal) PURE;
     STDMETHOD(GetLiteral)(THIS_ D3DXHANDLE parameter, BOOL* literal) PURE;
     STDMETHOD(CompileEffect)(THIS_ DWORD flags, LPD3DXBUFFER* effect, LPD3DXBUFFER* error_msgs) PURE;
-    STDMETHOD(CompileShader)(THIS_ D3DXHANDLE function, LPCSTR target, DWORD flags, LPD3DXBUFFER* shader,
-            LPD3DXBUFFER* error_msgs, LPD3DXCONSTANTTABLE* constant_table) PURE;
+    STDMETHOD(CompileShader)(THIS_ D3DXHANDLE function, const char *target, DWORD flags,
+            ID3DXBuffer **shader, ID3DXBuffer **error_msgs, ID3DXConstantTable **constant_table) PURE;
 };
 #undef INTERFACE
 
diff --git a/include/d3dx9shader.h b/include/d3dx9shader.h
index 9a556ef..53c2133 100644
--- a/include/d3dx9shader.h
+++ b/include/d3dx9shader.h
@@ -308,57 +308,24 @@ HRESULT WINAPI D3DXAssembleShader(LPCSTR data,
                                   LPD3DXBUFFER* shader,
                                   LPD3DXBUFFER* error_messages);
 
-HRESULT WINAPI D3DXCompileShader(LPCSTR src_data,
-                                 UINT data_len,
-                                 const D3DXMACRO* defines,
-                                 LPD3DXINCLUDE include,
-                                 LPCSTR function_name,
-                                 LPCSTR profile,
-                                 DWORD flags,
-                                 LPD3DXBUFFER* shader,
-                                 LPD3DXBUFFER* error_messages,
-                                 LPD3DXCONSTANTTABLE* constant_table);
-
-HRESULT WINAPI D3DXCompileShaderFromFileA(LPCSTR filename,
-                                          CONST D3DXMACRO* defines,
-                                          LPD3DXINCLUDE include,
-                                          LPCSTR entrypoint,
-                                          LPCSTR profile,
-                                          DWORD flags,
-                                          LPD3DXBUFFER* shader,
-                                          LPD3DXBUFFER* error_messages,
-                                          LPD3DXCONSTANTTABLE* constant_table);
-HRESULT WINAPI D3DXCompileShaderFromFileW(LPCWSTR filename,
-                                          CONST D3DXMACRO* defines,
-                                          LPD3DXINCLUDE include,
-                                          LPCSTR entrypoint,
-                                          LPCSTR profile,
-                                          DWORD flags,
-                                          LPD3DXBUFFER* shader,
-                                          LPD3DXBUFFER* error_messages,
-                                          LPD3DXCONSTANTTABLE* constant_table);
+HRESULT WINAPI D3DXCompileShader(const char *src_data, UINT data_len, const D3DXMACRO *defines,
+        ID3DXInclude *include, const char *function_name, const char *profile, DWORD flags,
+        ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
+
+HRESULT WINAPI D3DXCompileShaderFromFileA(const char *filename, const D3DXMACRO *defines,
+        ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+        ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
+HRESULT WINAPI D3DXCompileShaderFromFileW(const WCHAR *filename, const D3DXMACRO *defines,
+        ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+        ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
 #define D3DXCompileShaderFromFile WINELIB_NAME_AW(D3DXCompileShaderFromFile)
 
-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);
-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);
+HRESULT WINAPI D3DXCompileShaderFromResourceA(HMODULE module, const char *resource, const D3DXMACRO *defines,
+        ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+        ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
+HRESULT WINAPI D3DXCompileShaderFromResourceW(HMODULE module, const WCHAR *resource, const D3DXMACRO *defines,
+        ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+        ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
 #define D3DXCompileShaderFromResource WINELIB_NAME_AW(D3DXCompileShaderFromResource)
 
 HRESULT WINAPI D3DXPreprocessShader(LPCSTR data,
@@ -394,12 +361,9 @@ HRESULT WINAPI D3DXPreprocessShaderFromResourceW(HMODULE module,
                                                  LPD3DXBUFFER* error_messages);
 #define D3DXPreprocessShaderFromResource WINELIB_NAME_AW(D3DXPreprocessShaderFromResource)
 
-HRESULT WINAPI D3DXGetShaderConstantTableEx(CONST DWORD* byte_code,
-                                            DWORD flags,
-                                            LPD3DXCONSTANTTABLE* constant_table);
+HRESULT WINAPI D3DXGetShaderConstantTableEx(const DWORD *byte_code, DWORD flags, ID3DXConstantTable **constant_table);
 
-HRESULT WINAPI D3DXGetShaderConstantTable(CONST DWORD* byte_code,
-                                          LPD3DXCONSTANTTABLE* constant_table);
+HRESULT WINAPI D3DXGetShaderConstantTable(const DWORD *byte_code, ID3DXConstantTable **constant_table);
 
 #ifdef __cplusplus
 }
-- 
1.7.8.6




More information about the wine-patches mailing list