[18/47] WineD3D: Move WINED3DRS_LINEPATTERN to the state table

Stefan Dösinger stefan at codeweavers.com
Sun Dec 10 16:20:01 CST 2006


-------------- next part --------------
From 717ed05e0ef2b080e176057e501c3c86826ca922 Mon Sep 17 00:00:00 2001
From: Stefan Doesinger <stefan at codeweavers.com>
Date: Fri, 8 Dec 2006 20:14:01 +0100
Subject: [PATCH] WineD3D: Move WINED3DRS_LINEPATTERN to the state table

---
 dlls/wined3d/device.c |   23 +----------------------
 dlls/wined3d/state.c  |   22 +++++++++++++++++++++-
 2 files changed, 22 insertions(+), 23 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 9693ce2..b752053 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3389,29 +3389,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl
     case WINED3DRS_SPECULARMATERIALSOURCE    :
     case WINED3DRS_AMBIENTMATERIALSOURCE     :
     case WINED3DRS_EMISSIVEMATERIALSOURCE    :
-        StateTable[STATE_RENDER(State)].apply(STATE_RENDER(State), This->stateBlock);
-        break;
-
     case WINED3DRS_LINEPATTERN               :
-        {
-            union {
-                DWORD                 d;
-                WINED3DLINEPATTERN    lp;
-            } tmppattern;
-            tmppattern.d = Value;
-
-            TRACE("Line pattern: repeat %d bits %x\n", tmppattern.lp.wRepeatFactor, tmppattern.lp.wLinePattern);
-
-            if (tmppattern.lp.wRepeatFactor) {
-                glLineStipple(tmppattern.lp.wRepeatFactor, tmppattern.lp.wLinePattern);
-                checkGLcall("glLineStipple(repeat, linepattern)");
-                glEnable(GL_LINE_STIPPLE);
-                checkGLcall("glEnable(GL_LINE_STIPPLE);");
-            } else {
-                glDisable(GL_LINE_STIPPLE);
-                checkGLcall("glDisable(GL_LINE_STIPPLE);");
-            }
-        }
+        StateTable[STATE_RENDER(State)].apply(STATE_RENDER(State), This->stateBlock);
         break;
 
     case WINED3DRS_ZBIAS                     : /* D3D8 only */
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 24006cd..155872b 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -849,6 +849,26 @@ static void state_colormat(DWORD state, 
     }
 }
 
+static void state_linepattern(DWORD state, IWineD3DStateBlockImpl *stateblock) {
+    union {
+        DWORD                 d;
+        WINED3DLINEPATTERN    lp;
+    } tmppattern;
+    tmppattern.d = stateblock->renderState[WINED3DRS_LINEPATTERN];
+
+    TRACE("Line pattern: repeat %d bits %x\n", tmppattern.lp.wRepeatFactor, tmppattern.lp.wLinePattern);
+
+    if (tmppattern.lp.wRepeatFactor) {
+        glLineStipple(tmppattern.lp.wRepeatFactor, tmppattern.lp.wLinePattern);
+        checkGLcall("glLineStipple(repeat, linepattern)");
+        glEnable(GL_LINE_STIPPLE);
+        checkGLcall("glEnable(GL_LINE_STIPPLE);");
+    } else {
+        glDisable(GL_LINE_STIPPLE);
+        checkGLcall("glDisable(GL_LINE_STIPPLE);");
+    }
+}
+
 const struct StateEntry StateTable[] =
 {
       /* State name                                         representative,                                     apply function */
@@ -862,7 +882,7 @@ const struct StateEntry StateTable[] =
     { /* 7,  WINED3DRS_ZENABLE                      */      STATE_RENDER(WINED3DRS_ZENABLE),                    state_zenable       },
     { /* 8,  WINED3DRS_FILLMODE                     */      STATE_RENDER(WINED3DRS_FILLMODE),                   state_fillmode      },
     { /* 9,  WINED3DRS_SHADEMODE                    */      STATE_RENDER(WINED3DRS_SHADEMODE),                  state_shademode     },
-    { /* 10, WINED3DRS_LINEPATTERN                  */      STATE_RENDER(WINED3DRS_LINEPATTERN),                state_unknown       },
+    { /* 10, WINED3DRS_LINEPATTERN                  */      STATE_RENDER(WINED3DRS_LINEPATTERN),                state_linepattern   },
     { /* 11, WINED3DRS_MONOENABLE                   */      STATE_RENDER(WINED3DRS_MONOENABLE),                 state_unknown       },
     { /* 12, WINED3DRS_ROP2                         */      STATE_RENDER(WINED3DRS_ROP2),                       state_unknown       },
     { /* 13, WINED3DRS_PLANEMASK                    */      STATE_RENDER(WINED3DRS_PLANEMASK),                  state_unknown       },
-- 
1.4.2.4



More information about the wine-patches mailing list