From 9ce3c61a4196cf9c00b88f58893d96164959b7c1 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Tue, 21 Sep 2010 21:20:55 +0200 Subject: [PATCH] wined3d: Move clip plane state to wined3d_state. --- dlls/wined3d/device.c | 25 +++++++++++++------------ dlls/wined3d/state.c | 10 +++++----- dlls/wined3d/stateblock.c | 14 ++++++++------ dlls/wined3d/wined3d_private.h | 2 +- 4 files changed, 27 insertions(+), 24 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 289c2a4a0f..6f4c84ac6a 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -2808,18 +2808,19 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetClipPlane(IWineD3DDevice *iface, DWO This->updateStateBlock->changed.clipplane |= 1 << Index; - if(This->updateStateBlock->clipplane[Index][0] == pPlane[0] && - This->updateStateBlock->clipplane[Index][1] == pPlane[1] && - This->updateStateBlock->clipplane[Index][2] == pPlane[2] && - This->updateStateBlock->clipplane[Index][3] == pPlane[3]) { + if (This->updateStateBlock->state.clip_planes[Index][0] == pPlane[0] + && This->updateStateBlock->state.clip_planes[Index][1] == pPlane[1] + && This->updateStateBlock->state.clip_planes[Index][2] == pPlane[2] + && This->updateStateBlock->state.clip_planes[Index][3] == pPlane[3]) + { TRACE("Application is setting old values over, nothing to do\n"); return WINED3D_OK; } - This->updateStateBlock->clipplane[Index][0] = pPlane[0]; - This->updateStateBlock->clipplane[Index][1] = pPlane[1]; - This->updateStateBlock->clipplane[Index][2] = pPlane[2]; - This->updateStateBlock->clipplane[Index][3] = pPlane[3]; + This->updateStateBlock->state.clip_planes[Index][0] = pPlane[0]; + This->updateStateBlock->state.clip_planes[Index][1] = pPlane[1]; + This->updateStateBlock->state.clip_planes[Index][2] = pPlane[2]; + This->updateStateBlock->state.clip_planes[Index][3] = pPlane[3]; /* Handle recording of state blocks */ if (This->isRecordingState) { @@ -2843,10 +2844,10 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetClipPlane(IWineD3DDevice *iface, DWO return WINED3DERR_INVALIDCALL; } - pPlane[0] = (float) This->stateBlock->clipplane[Index][0]; - pPlane[1] = (float) This->stateBlock->clipplane[Index][1]; - pPlane[2] = (float) This->stateBlock->clipplane[Index][2]; - pPlane[3] = (float) This->stateBlock->clipplane[Index][3]; + pPlane[0] = (float)This->stateBlock->state.clip_planes[Index][0]; + pPlane[1] = (float)This->stateBlock->state.clip_planes[Index][1]; + pPlane[2] = (float)This->stateBlock->state.clip_planes[Index][2]; + pPlane[3] = (float)This->stateBlock->state.clip_planes[Index][3]; return WINED3D_OK; } diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index f7072f582b..a99833ee65 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -3809,11 +3809,11 @@ static void clipplane(DWORD state, IWineD3DStateBlockImpl *stateblock, struct wi } TRACE("Clipplane [%f,%f,%f,%f]\n", - stateblock->clipplane[index][0], - stateblock->clipplane[index][1], - stateblock->clipplane[index][2], - stateblock->clipplane[index][3]); - glClipPlane(GL_CLIP_PLANE0 + index, stateblock->clipplane[index]); + stateblock->state.clip_planes[index][0], + stateblock->state.clip_planes[index][1], + stateblock->state.clip_planes[index][2], + stateblock->state.clip_planes[index][3]); + glClipPlane(GL_CLIP_PLANE0 + index, stateblock->state.clip_planes[index]); checkGLcall("glClipPlane"); glPopMatrix(); diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c index c8152c838c..2834fa5eb9 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -818,10 +818,12 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_Capture(IWineD3DStateBlock *iface) { if (!(map & 1)) continue; - if (memcmp(targetStateBlock->clipplane[i], This->clipplane[i], sizeof(*This->clipplane))) + if (memcmp(targetStateBlock->state.clip_planes[i], + This->state.clip_planes[i], sizeof(*This->state.clip_planes))) { TRACE("Updating clipplane %u.\n", i); - memcpy(This->clipplane[i], targetStateBlock->clipplane[i], sizeof(*This->clipplane)); + memcpy(This->state.clip_planes[i], + targetStateBlock->state.clip_planes[i], sizeof(*This->state.clip_planes)); } } @@ -1061,10 +1063,10 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_Apply(IWineD3DStateBlock *iface) if (!(map & 1)) continue; - clip[0] = This->clipplane[i][0]; - clip[1] = This->clipplane[i][1]; - clip[2] = This->clipplane[i][2]; - clip[3] = This->clipplane[i][3]; + clip[0] = This->state.clip_planes[i][0]; + clip[1] = This->state.clip_planes[i][1]; + clip[2] = This->state.clip_planes[i][2]; + clip[3] = This->state.clip_planes[i][3]; IWineD3DDevice_SetClipPlane(device, i, clip); } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 01c8469a1d..5cb9723238 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2374,6 +2374,7 @@ struct wined3d_state DWORD lowest_disabled_stage; WINED3DMATRIX transforms[HIGHEST_TRANSFORMSTATE + 1]; + double clip_planes[MAX_CLIPPLANES][4]; WINED3DMATERIAL material; WINED3DVIEWPORT viewport; RECT scissor_rect; @@ -2402,7 +2403,6 @@ struct IWineD3DStateBlockImpl struct wined3d_state state; /* Clipping */ - double clipplane[MAX_CLIPPLANES][4]; WINED3DCLIPSTATUS clip_status; /* Contained state management */ -- 2.32.0.93.g670b81a890