Henri Verbeet : d3d10: Add initial support for parsing structures.
Alexandre Julliard
julliard at winehq.org
Wed Sep 9 09:55:42 CDT 2009
Module: wine
Branch: master
Commit: 7f886a2b95ef6866582fe0ee8611720cf0cf66be
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7f886a2b95ef6866582fe0ee8611720cf0cf66be
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Tue Sep 8 16:37:59 2009 +0200
d3d10: Add initial support for parsing structures.
---
dlls/d3d10/effect.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
index f7583f9..afdc386 100644
--- a/dlls/d3d10/effect.c
+++ b/dlls/d3d10/effect.c
@@ -457,6 +457,32 @@ static void parse_fx10_type(const char *ptr, const char *data)
TRACE("\tunknown bits: %#x.\n", tmp & ~(D3D10_FX10_TYPE_COLUMN_MASK | D3D10_FX10_TYPE_ROW_MASK
| D3D10_FX10_TYPE_BASETYPE_MASK | D3D10_FX10_TYPE_CLASS_MASK));
}
+ else if (unknown0 == 3)
+ {
+ DWORD member_count;
+ unsigned int i;
+
+ TRACE("Type is a structure.\n");
+
+ read_dword(&ptr, &member_count);
+ TRACE("Member count: %u.\n", member_count);
+
+ for (i = 0; i < member_count; ++i)
+ {
+ read_dword(&ptr, &tmp);
+ TRACE("Member %u name at offset %#x.\n", i, tmp);
+ TRACE("Member %u name: %s.\n", i, debugstr_a(data + tmp));
+
+ /* Member semantic? */
+ skip_dword_unknown(&ptr, 1);
+
+ read_dword(&ptr, &tmp);
+ TRACE("Member %u offset in struct: %#x.\n", i, tmp);
+
+ read_dword(&ptr, &tmp);
+ TRACE("Member %u type info at offset %#x.\n", i, tmp);
+ }
+ }
}
static HRESULT parse_fx10_variable(struct d3d10_effect_variable *v, const char **ptr, const char *data)
More information about the wine-cvs
mailing list