Stefan Dösinger : wined3d: Add empty sampler entries to the state table.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Dec 20 12:24:47 CST 2006


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Tue Dec 19 23:14:07 2006 +0100

wined3d: Add empty sampler entries to the state table.

---

 dlls/wined3d/state.c           |   17 +++++++++++++++++
 dlls/wined3d/wined3d_private.h |    6 +++++-
 2 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index a7772f5..8aeafb8 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -2127,4 +2127,21 @@ const struct StateEntry StateTable[] =
     { /*7, 30, undefined                            */      0 /* -> sampler state in ddraw / d3d8 */,           state_undefined     },
     { /*7, 31, undefined                            */      0 /* -> sampler state in ddraw / d3d8 */,           state_undefined     },
     { /*7, 32, WINED3DTSS_CONSTANT                  */      0 /* As long as we don't support D3DTA_CONSTANT */, state_nogl          },
+    /* Sampler states */
+    { /* 0, Sampler 0                               */      STATE_SAMPLER(0),                                   state_undefined     },
+    { /* 1, Sampler 1                               */      STATE_SAMPLER(1),                                   state_undefined     },
+    { /* 2, Sampler 2                               */      STATE_SAMPLER(2),                                   state_undefined     },
+    { /* 3, Sampler 3                               */      STATE_SAMPLER(3),                                   state_undefined     },
+    { /* 4, Sampler 3                               */      STATE_SAMPLER(4),                                   state_undefined     },
+    { /* 5, Sampler 5                               */      STATE_SAMPLER(5),                                   state_undefined     },
+    { /* 6, Sampler 6                               */      STATE_SAMPLER(6),                                   state_undefined     },
+    { /* 7, Sampler 7                               */      STATE_SAMPLER(7),                                   state_undefined     },
+    { /* 8, Sampler 8                               */      STATE_SAMPLER(8),                                   state_undefined     },
+    { /* 9, Sampler 9                               */      STATE_SAMPLER(9),                                   state_undefined     },
+    { /*10, Sampler 10                              */      STATE_SAMPLER(10),                                  state_undefined     },
+    { /*11, Sampler 11                              */      STATE_SAMPLER(11),                                  state_undefined     },
+    { /*12, Sampler 12                              */      STATE_SAMPLER(12),                                  state_undefined     },
+    { /*13, Sampler 13                              */      STATE_SAMPLER(13),                                  state_undefined     },
+    { /*14, Sampler 14                              */      STATE_SAMPLER(14),                                  state_undefined     },
+    { /*15, Sampler 15                              */      STATE_SAMPLER(15),                                  state_undefined     },
 };
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 6c75706..95bdbde 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -416,7 +416,11 @@ typedef void (*APPLYSTATEFUNC)(DWORD sta
 #define STATE_TEXTURESTAGE(stage, num) (STATE_RENDER(WINEHIGHEST_RENDER_STATE) + (stage) * WINED3D_HIGHEST_TEXTURE_STATE + (num))
 #define STATE_IS_TEXTURESTAGE(a) ((a) >= STATE_TEXTURESTAGE(0, 1) && (a) <= STATE_TEXTURESTAGE(MAX_TEXTURES - 1, WINED3D_HIGHEST_TEXTURE_STATE))
 
-#define STATE_HIGHEST (STATE_TEXTURESTAGE(MAX_TEXTURES - 1, WINED3D_HIGHEST_TEXTURE_STATE))
+/* + 1 because samplers start with 0 */
+#define STATE_SAMPLER(num) (STATE_TEXTURESTAGE(MAX_TEXTURES - 1, WINED3D_HIGHEST_TEXTURE_STATE) + 1 + (num))
+#define STATE_IS_SAMPLER(num) ((num) >= STATE_SAMPLER(0) && (num) <= STATE_SAMPLER(MAX_SAMPLERS - 1))
+
+#define STATE_HIGHEST (STATE_SAMPLER(MAX_SAMPLERS - 1))
 
 struct StateEntry
 {




More information about the wine-cvs mailing list