d3dx10: Implement D3DX10CompileFromMemory. (v2)

Andrey Gusev andrey.goosev at gmail.com
Wed Jun 29 03:20:53 CDT 2016


-------------- next part --------------
From c2536891e27223438aa98231565685440044da92 Mon Sep 17 00:00:00 2001
Message-Id: <c2536891e27223438aa98231565685440044da92.1467188360.git.andrey.goosev at gmail.com>
From: Andrey Gusev <andrey.goosev at gmail.com>
Date: Wed, 29 Jun 2016 11:19:56 +0300
Subject: [PATCH] d3dx10: Implement D3DX10CompileFromMemory. (v2)

Signed-off-by: Andrey Gusev <andrey.goosev at gmail.com>
---
 dlls/d3dx10_43/Makefile.in    |  3 ++-
 dlls/d3dx10_43/async.c        | 45 +++++++++++++++++++++++++++++++++++++++++++
 dlls/d3dx10_43/d3dx10_43.spec |  2 +-
 include/d3dx10async.h         |  6 ++++++
 4 files changed, 54 insertions(+), 2 deletions(-)

diff --git a/dlls/d3dx10_43/Makefile.in b/dlls/d3dx10_43/Makefile.in
index 9338aca..5f1eccb 100644
--- a/dlls/d3dx10_43/Makefile.in
+++ b/dlls/d3dx10_43/Makefile.in
@@ -1,8 +1,9 @@
 MODULE    = d3dx10_43.dll
 IMPORTLIB = d3dx10
-IMPORTS   = d3d10_1 dxguid
+IMPORTS   = d3d10_1 d3dcompiler dxguid
 
 C_SRCS = \
+	async.c \
 	d3dx10_43_main.c
 
 RC_SRCS = version.rc
diff --git a/dlls/d3dx10_43/async.c b/dlls/d3dx10_43/async.c
new file mode 100644
index 0000000..879e420
--- /dev/null
+++ b/dlls/d3dx10_43/async.c
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2016 Andrey Gusev
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "config.h"
+#include "wine/port.h"
+#include "d3d10_1.h"
+#include "d3dx10.h"
+#include "d3dx10core.h"
+#include "d3dcompiler.h"
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3dx);
+
+HRESULT WINAPI D3DX10CompileFromMemory(const char *data, SIZE_T data_size, const char *filename,
+        const D3D10_SHADER_MACRO *defines, ID3D10Include *include, const char *entry_point,
+        const char *target, UINT sflags, UINT eflags, ID3DX10ThreadPump *pump, ID3D10Blob **shader,
+        ID3D10Blob **error_messages, HRESULT *hresult)
+{
+    TRACE("data %s, data_size %lu, filename %s, defines %p, include %p, entry_point %s, target %s, "
+            "sflags %#x, eflags %#x, pump %p, shader %p, error_messages %p, hresult %p.\n",
+            debugstr_a(data), data_size, debugstr_a(filename), defines, include, entry_point,
+            debugstr_a(target), sflags, eflags, pump, shader, error_messages, hresult);
+
+    if (pump)
+        FIXME("Unimplemented ID3DX10ThreadPump handling.\n");
+
+    return D3DCompile(data, data_size, filename, defines, include, entry_point, target,
+            sflags, eflags, shader, error_messages);
+}
diff --git a/dlls/d3dx10_43/d3dx10_43.spec b/dlls/d3dx10_43/d3dx10_43.spec
index 99aa8f3..ab696e8 100644
--- a/dlls/d3dx10_43/d3dx10_43.spec
+++ b/dlls/d3dx10_43/d3dx10_43.spec
@@ -2,7 +2,7 @@
 @ stdcall D3DX10CheckVersion(long long)
 @ stub D3DX10CompileFromFileA(str ptr ptr str str long long ptr ptr ptr ptr)
 @ stub D3DX10CompileFromFileW(wstr ptr ptr str str long long ptr ptr ptr ptr)
-@ stub D3DX10CompileFromMemory(str long str ptr ptr str str long long ptr ptr ptr ptr)
+@ stdcall D3DX10CompileFromMemory(str long str ptr ptr str str long long ptr ptr ptr ptr)
 @ stub D3DX10CompileFromResourceA(long str str ptr ptr str str long long ptr ptr ptr ptr)
 @ stub D3DX10CompileFromResourceW(long wstr wstr ptr ptr str str long long ptr ptr ptr ptr)
 @ stub D3DX10ComputeNormalMap(ptr long long long ptr)
diff --git a/include/d3dx10async.h b/include/d3dx10async.h
index 85219d2..d195d3a 100644
--- a/include/d3dx10async.h
+++ b/include/d3dx10async.h
@@ -19,6 +19,12 @@
 #ifndef __D3DX10ASYNC_H__
 #define __D3DX10ASYNC_H__
 
+#include "d3dx10.h"
+
+HRESULT WINAPI D3DX10CompileFromMemory(const char *data, SIZE_T data_size, const char *filename,
+        const D3D10_SHADER_MACRO *defines, ID3D10Include *include, const char *entry_point,
+        const char *target, UINT sflags, UINT eflags, ID3DX10ThreadPump *pump, ID3D10Blob **shader,
+        ID3D10Blob **error_messages, HRESULT *hresult);
 
 HRESULT WINAPI D3DX10CreateEffectFromFileA(const char *filename, const D3D10_SHADER_MACRO *defines,
         ID3D10Include *include, const char *profile, UINT hlslflags, UINT fxflags, ID3D10Device *device,
-- 
2.5.5



More information about the wine-patches mailing list