Commit 9ce3c61a authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Move clip plane state to wined3d_state.

parent 4546a13d
...@@ -2808,18 +2808,19 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetClipPlane(IWineD3DDevice *iface, DWO ...@@ -2808,18 +2808,19 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetClipPlane(IWineD3DDevice *iface, DWO
This->updateStateBlock->changed.clipplane |= 1 << Index; This->updateStateBlock->changed.clipplane |= 1 << Index;
if(This->updateStateBlock->clipplane[Index][0] == pPlane[0] && if (This->updateStateBlock->state.clip_planes[Index][0] == pPlane[0]
This->updateStateBlock->clipplane[Index][1] == pPlane[1] && && This->updateStateBlock->state.clip_planes[Index][1] == pPlane[1]
This->updateStateBlock->clipplane[Index][2] == pPlane[2] && && This->updateStateBlock->state.clip_planes[Index][2] == pPlane[2]
This->updateStateBlock->clipplane[Index][3] == pPlane[3]) { && This->updateStateBlock->state.clip_planes[Index][3] == pPlane[3])
{
TRACE("Application is setting old values over, nothing to do\n"); TRACE("Application is setting old values over, nothing to do\n");
return WINED3D_OK; return WINED3D_OK;
} }
This->updateStateBlock->clipplane[Index][0] = pPlane[0]; This->updateStateBlock->state.clip_planes[Index][0] = pPlane[0];
This->updateStateBlock->clipplane[Index][1] = pPlane[1]; This->updateStateBlock->state.clip_planes[Index][1] = pPlane[1];
This->updateStateBlock->clipplane[Index][2] = pPlane[2]; This->updateStateBlock->state.clip_planes[Index][2] = pPlane[2];
This->updateStateBlock->clipplane[Index][3] = pPlane[3]; This->updateStateBlock->state.clip_planes[Index][3] = pPlane[3];
/* Handle recording of state blocks */ /* Handle recording of state blocks */
if (This->isRecordingState) { if (This->isRecordingState) {
...@@ -2843,10 +2844,10 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetClipPlane(IWineD3DDevice *iface, DWO ...@@ -2843,10 +2844,10 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetClipPlane(IWineD3DDevice *iface, DWO
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
} }
pPlane[0] = (float) This->stateBlock->clipplane[Index][0]; pPlane[0] = (float)This->stateBlock->state.clip_planes[Index][0];
pPlane[1] = (float) This->stateBlock->clipplane[Index][1]; pPlane[1] = (float)This->stateBlock->state.clip_planes[Index][1];
pPlane[2] = (float) This->stateBlock->clipplane[Index][2]; pPlane[2] = (float)This->stateBlock->state.clip_planes[Index][2];
pPlane[3] = (float) This->stateBlock->clipplane[Index][3]; pPlane[3] = (float)This->stateBlock->state.clip_planes[Index][3];
return WINED3D_OK; return WINED3D_OK;
} }
......
...@@ -3809,11 +3809,11 @@ static void clipplane(DWORD state, IWineD3DStateBlockImpl *stateblock, struct wi ...@@ -3809,11 +3809,11 @@ static void clipplane(DWORD state, IWineD3DStateBlockImpl *stateblock, struct wi
} }
TRACE("Clipplane [%f,%f,%f,%f]\n", TRACE("Clipplane [%f,%f,%f,%f]\n",
stateblock->clipplane[index][0], stateblock->state.clip_planes[index][0],
stateblock->clipplane[index][1], stateblock->state.clip_planes[index][1],
stateblock->clipplane[index][2], stateblock->state.clip_planes[index][2],
stateblock->clipplane[index][3]); stateblock->state.clip_planes[index][3]);
glClipPlane(GL_CLIP_PLANE0 + index, stateblock->clipplane[index]); glClipPlane(GL_CLIP_PLANE0 + index, stateblock->state.clip_planes[index]);
checkGLcall("glClipPlane"); checkGLcall("glClipPlane");
glPopMatrix(); glPopMatrix();
......
...@@ -818,10 +818,12 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_Capture(IWineD3DStateBlock *iface) ...@@ -818,10 +818,12 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_Capture(IWineD3DStateBlock *iface)
{ {
if (!(map & 1)) continue; 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); 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) ...@@ -1061,10 +1063,10 @@ static HRESULT WINAPI IWineD3DStateBlockImpl_Apply(IWineD3DStateBlock *iface)
if (!(map & 1)) continue; if (!(map & 1)) continue;
clip[0] = This->clipplane[i][0]; clip[0] = This->state.clip_planes[i][0];
clip[1] = This->clipplane[i][1]; clip[1] = This->state.clip_planes[i][1];
clip[2] = This->clipplane[i][2]; clip[2] = This->state.clip_planes[i][2];
clip[3] = This->clipplane[i][3]; clip[3] = This->state.clip_planes[i][3];
IWineD3DDevice_SetClipPlane(device, i, clip); IWineD3DDevice_SetClipPlane(device, i, clip);
} }
......
...@@ -2374,6 +2374,7 @@ struct wined3d_state ...@@ -2374,6 +2374,7 @@ struct wined3d_state
DWORD lowest_disabled_stage; DWORD lowest_disabled_stage;
WINED3DMATRIX transforms[HIGHEST_TRANSFORMSTATE + 1]; WINED3DMATRIX transforms[HIGHEST_TRANSFORMSTATE + 1];
double clip_planes[MAX_CLIPPLANES][4];
WINED3DMATERIAL material; WINED3DMATERIAL material;
WINED3DVIEWPORT viewport; WINED3DVIEWPORT viewport;
RECT scissor_rect; RECT scissor_rect;
...@@ -2402,7 +2403,6 @@ struct IWineD3DStateBlockImpl ...@@ -2402,7 +2403,6 @@ struct IWineD3DStateBlockImpl
struct wined3d_state state; struct wined3d_state state;
/* Clipping */ /* Clipping */
double clipplane[MAX_CLIPPLANES][4];
WINED3DCLIPSTATUS clip_status; WINED3DCLIPSTATUS clip_status;
/* Contained state management */ /* Contained state management */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment