d3dx10: Implement D3DX10CompileFromMemory.
Andrey Gusev
andrey.goosev at gmail.com
Mon Jun 27 14:49:15 CDT 2016
-------------- next part --------------
From 737c77d7a5076b4264e108e881b6bac38969a93e Mon Sep 17 00:00:00 2001
Message-Id: <737c77d7a5076b4264e108e881b6bac38969a93e.1467056894.git.andrey.goosev at gmail.com>
From: Andrey Gusev <andrey.goosev at gmail.com>
Date: Mon, 27 Jun 2016 22:47:56 +0300
Subject: [PATCH] d3dx10: Implement D3DX10CompileFromMemory.
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 +-
dlls/d3dx10_43/d3dx10_43_main.c | 2 ++
include/d3dx10async.h | 6 ++++++
5 files changed, 56 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..d990c30
--- /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, eflage %#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/dlls/d3dx10_43/d3dx10_43_main.c b/dlls/d3dx10_43/d3dx10_43_main.c
index 0c1ff80..fe56ee0 100644
--- a/dlls/d3dx10_43/d3dx10_43_main.c
+++ b/dlls/d3dx10_43/d3dx10_43_main.c
@@ -37,6 +37,8 @@
#include "d3dx10core.h"
#include "d3dx10tex.h"
+#include "wine/debug.h"
+
WINE_DEFAULT_DEBUG_CHANNEL(d3dx);
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
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