Henri Verbeet : wined3d: Validate some more states.

Alexandre Julliard julliard at winehq.org
Thu Apr 8 11:12:42 CDT 2010


Module: wine
Branch: master
Commit: 284e92def932243e9d75435c2eee2caf02767363
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=284e92def932243e9d75435c2eee2caf02767363

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Apr  7 21:04:48 2010 +0200

wined3d: Validate some more states.

---

 dlls/wined3d/state.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 5d6c19a..f94aac5 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -5670,6 +5670,20 @@ static void validate_state_table(struct StateEntry *state_table)
         {196, 197},
         {  0,   0},
     };
+    static const DWORD simple_states[] =
+    {
+        STATE_MATERIAL,
+        STATE_VDECL,
+        STATE_STREAMSRC,
+        STATE_INDEXBUFFER,
+        STATE_VERTEXSHADERCONSTANT,
+        STATE_PIXELSHADERCONSTANT,
+        STATE_VSHADER,
+        STATE_PIXELSHADER,
+        STATE_VIEWPORT,
+        STATE_SCISSORRECT,
+        STATE_FRONTFACE,
+    };
     unsigned int i, current;
 
     for (i = STATE_RENDER(1), current = 0; i <= STATE_RENDER(WINEHIGHEST_RENDER_STATE); ++i)
@@ -5685,6 +5699,13 @@ static void validate_state_table(struct StateEntry *state_table)
         if (i == STATE_RENDER(rs_holes[current].last)) ++current;
     }
 
+    for (i = 0; i < sizeof(simple_states) / sizeof(*simple_states); ++i)
+    {
+        if (!state_table[simple_states[i]].representative)
+            ERR("State %s (%#x) should have a representative.\n",
+                    debug_d3dstate(simple_states[i]), simple_states[i]);
+    }
+
     for (i = 0; i < STATE_HIGHEST + 1; ++i)
     {
         DWORD rep = state_table[i].representative;




More information about the wine-cvs mailing list