[PATCH 4/4] wined3d: Move clip status to wined3d_state.

Henri Verbeet hverbeet at codeweavers.com
Tue Sep 21 14:20:56 CDT 2010


---
 dlls/wined3d/device.c          |    8 ++++----
 dlls/wined3d/state.c           |   15 +++++++++------
 dlls/wined3d/stateblock.c      |    4 ++--
 dlls/wined3d/wined3d_private.h |    4 +---
 4 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 6f4c84a..89ddb85 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -2862,8 +2862,8 @@ static HRESULT  WINAPI  IWineD3DDeviceImpl_SetClipStatus(IWineD3DDevice *iface,
     if (!pClipStatus)
         return WINED3DERR_INVALIDCALL;
 
-    This->updateStateBlock->clip_status.ClipUnion = pClipStatus->ClipUnion;
-    This->updateStateBlock->clip_status.ClipIntersection = pClipStatus->ClipIntersection;
+    This->updateStateBlock->state.clip_status.ClipUnion = pClipStatus->ClipUnion;
+    This->updateStateBlock->state.clip_status.ClipIntersection = pClipStatus->ClipIntersection;
     return WINED3D_OK;
 }
 
@@ -2874,8 +2874,8 @@ static HRESULT  WINAPI  IWineD3DDeviceImpl_GetClipStatus(IWineD3DDevice *iface,
     if (!pClipStatus)
         return WINED3DERR_INVALIDCALL;
 
-    pClipStatus->ClipUnion = This->updateStateBlock->clip_status.ClipUnion;
-    pClipStatus->ClipIntersection = This->updateStateBlock->clip_status.ClipIntersection;
+    pClipStatus->ClipUnion = This->updateStateBlock->state.clip_status.ClipUnion;
+    pClipStatus->ClipIntersection = This->updateStateBlock->state.clip_status.ClipIntersection;
     return WINED3D_OK;
 }
 
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index a99833e..772f5f5 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -616,12 +616,15 @@ static void state_clipping(DWORD state, IWineD3DStateBlockImpl *stateblock, stru
     if (disable & WINED3DCLIPPLANE5) { glDisable(GL_CLIP_PLANE5); checkGLcall("glDisable(clip plane 5)"); }
 
     /** update clipping status */
-    if (enable) {
-        stateblock->clip_status.ClipUnion = 0;
-        stateblock->clip_status.ClipIntersection = 0xFFFFFFFF;
-    } else {
-        stateblock->clip_status.ClipUnion = 0;
-        stateblock->clip_status.ClipIntersection = 0;
+    if (enable)
+    {
+        stateblock->state.clip_status.ClipUnion = 0;
+        stateblock->state.clip_status.ClipIntersection = 0xFFFFFFFF;
+    }
+    else
+    {
+        stateblock->state.clip_status.ClipUnion = 0;
+        stateblock->state.clip_status.ClipIntersection = 0;
     }
 }
 
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index 2834fa5..2523bcb 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -1251,8 +1251,8 @@ static HRESULT  WINAPI IWineD3DStateBlockImpl_InitStartupStateBlock(IWineD3DStat
     IWineD3DDevice_SetRenderState(device, WINED3DRS_BLENDOPALPHA,             WINED3DBLENDOP_ADD);
 
     /* clipping status */
-    This->clip_status.ClipUnion = 0;
-    This->clip_status.ClipIntersection = 0xFFFFFFFF;
+    This->state.clip_status.ClipUnion = 0;
+    This->state.clip_status.ClipIntersection = 0xFFFFFFFF;
 
     /* Texture Stage States - Put directly into state block, we will call function below */
     for (i = 0; i < MAX_TEXTURES; ++i)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 5cb9723..337e91f 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2375,6 +2375,7 @@ struct wined3d_state
 
     WINED3DMATRIX transforms[HIGHEST_TRANSFORMSTATE + 1];
     double clip_planes[MAX_CLIPPLANES][4];
+    WINED3DCLIPSTATUS clip_status;
     WINED3DMATERIAL material;
     WINED3DVIEWPORT viewport;
     RECT scissor_rect;
@@ -2402,9 +2403,6 @@ struct IWineD3DStateBlockImpl
     SAVEDSTATES               changed;
     struct wined3d_state state;
 
-    /* Clipping */
-    WINED3DCLIPSTATUS         clip_status;
-
     /* Contained state management */
     DWORD                     contained_render_states[WINEHIGHEST_RENDER_STATE + 1];
     unsigned int              num_contained_render_states;
-- 
1.7.2.2




More information about the wine-patches mailing list