[PATCH 3/7] d3d10: Add initial support for parsing structures.
Henri Verbeet
hverbeet at codeweavers.com
Tue Sep 8 09:37:59 CDT 2009
---
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)
--
1.6.0.6
More information about the wine-patches
mailing list