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