[PATCH v2 1/3] D3D10: Add d3dcompiler_43 PARENTSRC to d3d10
Connor McAdams
conmanx360 at gmail.com
Thu Oct 24 14:49:15 CDT 2019
Adds PARENTSRC of d3dcompiler_43 to eventually use the reflection
functionality from it. Fixes conflicts of GUID declarations and
functions with the same names.
Signed-off-by: Connor McAdams <conmanx360 at gmail.com>
---
dlls/d3d10/Makefile.in | 19 +++++++++++++++++++
dlls/d3d10/d3d10_private.h | 2 +-
dlls/d3d10/effect.c | 12 ++++++------
dlls/d3d10/utils.c | 4 ++--
dlls/d3dcompiler_43/reflection.c | 3 ++-
5 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/dlls/d3d10/Makefile.in b/dlls/d3d10/Makefile.in
index e76f3c5f19..2d79dd53e0 100644
--- a/dlls/d3d10/Makefile.in
+++ b/dlls/d3d10/Makefile.in
@@ -1,14 +1,33 @@
MODULE = d3d10.dll
IMPORTLIB = d3d10
IMPORTS = dxguid uuid d3d10core d3dcompiler dxgi
+EXTRADEFS = -DD3D10REFLECT
+PARENTSRC = ../d3dcompiler_43
EXTRADLLFLAGS = -mno-cygwin
C_SRCS = \
+ asmparser.c \
+ blob.c \
+ bytecodewriter.c \
+ compiler.c \
+ preproc.c \
+ reflection.c \
+ ../d3dcompiler_43/utils.c \
d3d10_main.c \
effect.c \
shader.c \
stateblock.c \
utils.c
+LEX_SRCS = \
+ asmshader.l \
+ hlsl.l \
+ ppl.l
+
+BISON_SRCS = \
+ asmshader.y \
+ hlsl.y \
+ ppy.y
+
RC_SRCS = version.rc
diff --git a/dlls/d3d10/d3d10_private.h b/dlls/d3d10/d3d10_private.h
index f3fce9c569..bd149f0b41 100644
--- a/dlls/d3d10/d3d10_private.h
+++ b/dlls/d3d10/d3d10_private.h
@@ -298,7 +298,7 @@ static inline BOOL require_space(size_t offset, size_t count, size_t size, size_
return !count || (data_size - offset) / count >= size;
}
-void skip_dword_unknown(const char *location, const char **ptr, unsigned int count) DECLSPEC_HIDDEN;
+void d3d10_skip_dword_unknown(const char *location, const char **ptr, unsigned int count) DECLSPEC_HIDDEN;
void write_dword_unknown(char **ptr, DWORD d) DECLSPEC_HIDDEN;
#endif /* __WINE_D3D10_PRIVATE_H */
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
index 439833485d..031b907955 100644
--- a/dlls/d3d10/effect.c
+++ b/dlls/d3d10/effect.c
@@ -343,7 +343,7 @@ static HRESULT shader_parse_signature(const char *data, DWORD data_size, struct
read_dword(&ptr, &count);
TRACE("%u elements\n", count);
- skip_dword_unknown("shader signature", &ptr, 1);
+ d3d10_skip_dword_unknown("shader signature", &ptr, 1);
if (!require_space(ptr - data, count, 6 * sizeof(DWORD), data_size))
{
@@ -1063,7 +1063,7 @@ static HRESULT parse_fx10_annotation(const char *data, size_t data_size,
if (FAILED(hr = parse_fx10_variable_head(data, data_size, ptr, a)))
return hr;
- skip_dword_unknown("annotation", ptr, 1);
+ d3d10_skip_dword_unknown("annotation", ptr, 1);
/* mark the variable as annotation */
a->flag = D3D10_EFFECT_VARIABLE_ANNOTATION;
@@ -1292,7 +1292,7 @@ static BOOL parse_fx10_state_group(const char *data, size_t data_size,
{
read_dword(ptr, &id);
read_dword(ptr, &idx);
- skip_dword_unknown("read property", ptr, 1);
+ d3d10_skip_dword_unknown("read property", ptr, 1);
read_dword(ptr, &value_offset);
if (!(property_info = get_property_info(id)))
@@ -1708,7 +1708,7 @@ static HRESULT parse_fx10_variable(const char *data, size_t data_size,
read_dword(ptr, &v->buffer_offset);
TRACE("Variable offset in buffer: %#x.\n", v->buffer_offset);
- skip_dword_unknown("variable", ptr, 1);
+ d3d10_skip_dword_unknown("variable", ptr, 1);
read_dword(ptr, &v->flag);
TRACE("Variable flag: %#x.\n", v->flag);
@@ -1795,7 +1795,7 @@ static HRESULT parse_fx10_local_variable(const char *data, size_t data_size,
}
TRACE("Variable semantic: %s.\n", debugstr_a(v->semantic));
- skip_dword_unknown("local variable", ptr, 1);
+ d3d10_skip_dword_unknown("local variable", ptr, 1);
switch (v->type->basetype)
{
@@ -1973,7 +1973,7 @@ static HRESULT parse_fx10_local_buffer(const char *data, size_t data_size,
read_dword(ptr, &l->type->member_count);
TRACE("Local buffer member count: %#x.\n", l->type->member_count);
- skip_dword_unknown("local buffer", ptr, 1);
+ d3d10_skip_dword_unknown("local buffer", ptr, 1);
read_dword(ptr, &l->annotation_count);
TRACE("Local buffer has %u annotations.\n", l->annotation_count);
diff --git a/dlls/d3d10/utils.c b/dlls/d3d10/utils.c
index 3b51868488..3c9935a8ab 100644
--- a/dlls/d3d10/utils.c
+++ b/dlls/d3d10/utils.c
@@ -129,7 +129,7 @@ const char *debug_d3d10_device_state_types(D3D10_DEVICE_STATE_TYPES t)
#undef WINE_D3D10_TO_STR
-void skip_dword_unknown(const char *location, const char **ptr, unsigned int count)
+void d3d10_skip_dword_unknown(const char *location, const char **ptr, unsigned int count)
{
unsigned int i;
DWORD d;
@@ -175,7 +175,7 @@ HRESULT parse_dxbc(const char *data, SIZE_T data_size,
}
/* checksum? */
- skip_dword_unknown("DXBC header", &ptr, 4);
+ d3d10_skip_dword_unknown("DXBC header", &ptr, 4);
read_dword(&ptr, &version);
TRACE("version: %#x.\n", version);
diff --git a/dlls/d3dcompiler_43/reflection.c b/dlls/d3dcompiler_43/reflection.c
index b163fca9e7..ce634ac95a 100644
--- a/dlls/d3dcompiler_43/reflection.c
+++ b/dlls/d3dcompiler_43/reflection.c
@@ -17,8 +17,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*
*/
-
+#ifndef D3D10REFLECT
#include "initguid.h"
+#endif
#include "d3dcompiler_private.h"
#include "winternl.h"
--
2.20.1
More information about the wine-devel
mailing list