[45/47] WineD3D: Move WINED3DRS_SEPARATEALPHABLENDENABLE to the state table

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


This is the last render state moved to the state table
-------------- next part --------------
From 284bb68e63ddfba7a5e56b2e0acb981c7da72834 Mon Sep 17 00:00:00 2001
From: Stefan Doesinger <stefan at codeweavers.com>
Date: Sun, 10 Dec 2006 20:11:25 +0100
Subject: [PATCH] WineD3D: Move WINED3DRS_SEPARATEALPHABLENDENABLE to the state table

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

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index c789164..84f56ef 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3438,6 +3438,10 @@ static HRESULT WINAPI IWineD3DDeviceImpl
     case WINED3DRS_ADAPTIVETESS_W :
     case WINED3DRS_ENABLEADAPTIVETESSELLATION:
     case WINED3DRS_SRGBWRITEENABLE           :
+    case WINED3DRS_SEPARATEALPHABLENDENABLE  :
+    case WINED3DRS_SRCBLENDALPHA             :
+    case WINED3DRS_DESTBLENDALPHA            :
+    case WINED3DRS_BLENDOPALPHA              :
         StateTable[STATE_RENDER(State)].apply(STATE_RENDER(State), This->stateBlock);
         break;
 
@@ -3448,24 +3452,6 @@ static HRESULT WINAPI IWineD3DDeviceImpl
         return WINED3DERR_INVALIDCALL;
       }
 
-    case WINED3DRS_SEPARATEALPHABLENDENABLE  :
-    {
-        if(Value)
-            ERR("(%p)->(%s,%d) not yet implemented. Missing of cap D3DPMISCCAPS_SEPARATEALPHABLEND wasn't honored?\n", This, debug_d3drenderstate(State), Value);
-        break;
-    }
-
-    case WINED3DRS_SRCBLENDALPHA             :
-    case WINED3DRS_DESTBLENDALPHA            :
-    case WINED3DRS_BLENDOPALPHA              :
-    {
-        if(This->stateBlock->renderState[WINED3DRS_SEPARATEALPHABLENDENABLE])
-            FIXME("(%p)->(%s,%d) not yet implemented\n", This, debug_d3drenderstate(State), Value);
-        else
-            TRACE("(%p)->(%s,%d): recording state but WINED3DRS_SEPARATEALPHABLENDENABLE is not enabled\n", This, debug_d3drenderstate(State), Value);
-        break;
-    }
-
     default:
         FIXME("(%p)->(%s,%d) unknown state\n", This, debug_d3drenderstate(State), Value);
     }
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 1844482..381838e 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -1214,6 +1214,12 @@ static void state_srgbwrite(DWORD state,
         ERR("Render state WINED3DRS_SRGBWRITEENABLE not yet implemented\n");
 }
 
+static void state_seperateblend(DWORD state, IWineD3DStateBlockImpl *stateblock) {
+    TRACE("Stub\n");
+    if(stateblock->renderState[WINED3DRS_SEPARATEALPHABLENDENABLE])
+        FIXME("(WINED3DRS_SEPARATEALPHABLENDENABLE,%d) not yet implemented\n", stateblock->renderState[WINED3DRS_SEPARATEALPHABLENDENABLE]);
+}
+
 const struct StateEntry StateTable[] =
 {
       /* State name                                         representative,                                     apply function */
@@ -1427,8 +1433,8 @@ const struct StateEntry StateTable[] =
     { /*203, WINED3DRS_WRAP13                       */      STATE_RENDER(WINED3DRS_WRAP0),                      state_wrap          },
     { /*204, WINED3DRS_WRAP14                       */      STATE_RENDER(WINED3DRS_WRAP0),                      state_wrap          },
     { /*205, WINED3DRS_WRAP15                       */      STATE_RENDER(WINED3DRS_WRAP0),                      state_wrap          },
-    { /*206, WINED3DRS_SEPARATEALPHABLENDENABLE     */      STATE_RENDER(WINED3DRS_SEPARATEALPHABLENDENABLE),   state_unknown       },
-    { /*207, WINED3DRS_SRCBLENDALPHA                */      STATE_RENDER(WINED3DRS_SEPARATEALPHABLENDENABLE),   state_unknown       },
-    { /*208, WINED3DRS_DESTBLENDALPHA               */      STATE_RENDER(WINED3DRS_SEPARATEALPHABLENDENABLE),   state_unknown       },
-    { /*209, WINED3DRS_BLENDOPALPHA                 */      STATE_RENDER(WINED3DRS_SEPARATEALPHABLENDENABLE),   state_unknown       },
+    { /*206, WINED3DRS_SEPARATEALPHABLENDENABLE     */      STATE_RENDER(WINED3DRS_SEPARATEALPHABLENDENABLE),   state_seperateblend },
+    { /*207, WINED3DRS_SRCBLENDALPHA                */      STATE_RENDER(WINED3DRS_SEPARATEALPHABLENDENABLE),   state_seperateblend },
+    { /*208, WINED3DRS_DESTBLENDALPHA               */      STATE_RENDER(WINED3DRS_SEPARATEALPHABLENDENABLE),   state_seperateblend },
+    { /*209, WINED3DRS_BLENDOPALPHA                 */      STATE_RENDER(WINED3DRS_SEPARATEALPHABLENDENABLE),   state_seperateblend },
 };
-- 
1.4.2.4



More information about the wine-patches mailing list