[PATCH] d3d10: Implement D3D10CompileEffectFromMemory().

Valentin Gabriel Mitrea mitrea.valentin at gmail.com
Fri Apr 20 06:53:23 CDT 2018


As MSDN documentation recommends, one should use D3DCompile()
instead of D3D10CompileEffectFromMemory(). So, execution was
forwarded to that function.

This implementation is a possible fix for this bug:

https://bugs.winehq.org/show_bug.cgi?id=36538

At the moment, there are no d3d10 tests written for shader and
effect compilation functions.

Signed-off-by: Valentin Gabriel Mitrea <mitrea.valentin at gmail.com>
---
 dlls/d3d10/d3d10_main.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/dlls/d3d10/d3d10_main.c b/dlls/d3d10/d3d10_main.c
index f2fbb41..0081e8f 100644
--- a/dlls/d3d10/d3d10_main.c
+++ b/dlls/d3d10/d3d10_main.c
@@ -253,17 +253,14 @@ HRESULT WINAPI D3D10CompileEffectFromMemory(void *data, SIZE_T data_size, const
         const D3D10_SHADER_MACRO *defines, ID3D10Include *include, UINT hlsl_flags, UINT fx_flags,
         ID3D10Blob **effect, ID3D10Blob **errors)
 {
-    FIXME("data %p, data_size %lu, filename %s, defines %p, include %p,"
-            " hlsl_flags %#x, fx_flags %#x, effect %p, errors %p stub!\n",
+    TRACE("data %p, data_size %lu, filename %s, defines %p, include %p, "
+            "hlsl_flags %#x, fx_flags %#x, effect %p, errors %p\n",
             data, data_size, wine_dbgstr_a(filename), defines, include,
             hlsl_flags, fx_flags, effect, errors);
 
-    if (effect)
-        *effect = NULL;
-    if (errors)
-        *errors = NULL;
-
-    return E_NOTIMPL;
+    /* Forward to d3dcompiler */
+    return D3DCompile(data, data_size, filename, defines, include,
+            NULL, "fx_4_0", hlsl_flags, fx_flags, effect, errors);
 }
 
 HRESULT WINAPI D3D10CreateEffectPoolFromMemory(void *data, SIZE_T data_size, UINT fx_flags,
-- 
2.7.4




More information about the wine-devel mailing list