diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 7c31f66dd25..52e90124ed3 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -3095,6 +3095,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetViewport(IWineD3DDevice *iface, CONS LEAVE_GL(); + /* Todo: move the gl code too */ + IWineD3DDeviceImpl_MarkStateDirty(This, STATE_VIEWPORT); return WINED3D_OK; } diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index f68546b0995..3eed45ef78a 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -2919,5 +2919,6 @@ const struct StateEntry StateTable[] = { /* , STATE_STREAMSRC */ STATE_VDECL, vertexdeclaration }, { /* , STATE_VDECL */ STATE_VDECL, vertexdeclaration }, { /* , STATE_VSHADER */ STATE_VDECL, vertexdeclaration }, + { /* , STATE_VIEWPORT */ STATE_VDECL, vertexdeclaration }, }; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 15958f3ee59..8088b70d4d5 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -433,7 +433,10 @@ typedef void (*APPLYSTATEFUNC)(DWORD state, IWineD3DStateBlockImpl *stateblock); #define STATE_VSHADER (STATE_VDECL + 1) #define STATE_IS_VSHADER(a) ((a) == STATE_VSHADER) -#define STATE_HIGHEST (STATE_VSHADER) +#define STATE_VIEWPORT (STATE_VSHADER + 1) +#define STATE_IS_VIEWPORT(a) ((a) == STATE_VIEWPORT) + +#define STATE_HIGHEST (STATE_VIEWPORT) struct StateEntry {