wined3d: Catch nop pixel shader changes.
This commit is contained in:
parent
22e2a5aca5
commit
a008003ccc
|
@ -3700,6 +3700,11 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetPixelShader(IWineD3DDevice *iface, I
|
||||||
return WINED3D_OK;
|
return WINED3D_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(pShader == oldShader) {
|
||||||
|
TRACE("App is setting the old pixel shader over, nothing to do\n");
|
||||||
|
return WINED3D_OK;
|
||||||
|
}
|
||||||
|
|
||||||
TRACE("(%p) : setting pShader(%p)\n", This, pShader);
|
TRACE("(%p) : setting pShader(%p)\n", This, pShader);
|
||||||
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_PIXELSHADER);
|
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_PIXELSHADER);
|
||||||
return WINED3D_OK;
|
return WINED3D_OK;
|
||||||
|
@ -6033,10 +6038,13 @@ static void device_reapply_stateblock(IWineD3DDeviceImpl* This) {
|
||||||
|
|
||||||
/* Temporaryily mark all render states dirty to force reapplication
|
/* Temporaryily mark all render states dirty to force reapplication
|
||||||
* until the context management for is integrated with the state management
|
* until the context management for is integrated with the state management
|
||||||
|
* The same for the pixel shader, sampler states and texture stage states are marked
|
||||||
|
* dirty my StateBlock::Apply already
|
||||||
*/
|
*/
|
||||||
for(i = 1; i < WINEHIGHEST_RENDER_STATE; i++) {
|
for(i = 1; i < WINEHIGHEST_RENDER_STATE; i++) {
|
||||||
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_RENDER(i));
|
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_RENDER(i));
|
||||||
}
|
}
|
||||||
|
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_PIXELSHADER);
|
||||||
|
|
||||||
/* Restore recording */
|
/* Restore recording */
|
||||||
This->isRecordingState = oldRecording;
|
This->isRecordingState = oldRecording;
|
||||||
|
|
Loading…
Reference in New Issue