Józef Kucia : d3d11: Set blend states only when blending is enabled.
Module: wine Branch: master Commit: 022867e5b15a9a986f24bfbbedb4f06ccf3bf351 URL: http://source.winehq.org/git/wine.git/?a=commit;h=022867e5b15a9a986f24bfbbed... Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Thu Jun 2 11:14:14 2016 +0200 d3d11: Set blend states only when blending is enabled. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d11/device.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c index 25c333d..0e4ef97 100644 --- a/dlls/d3d11/device.c +++ b/dlls/d3d11/device.c @@ -653,16 +653,22 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetBlendState(ID3D11Devi FIXME("Per-rendertarget blend not implemented.\n"); wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_ALPHABLENDENABLE, desc->RenderTarget[0].BlendEnable); - wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_SRCBLEND, desc->RenderTarget[0].SrcBlend); - wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_DESTBLEND, desc->RenderTarget[0].DestBlend); - wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_BLENDOP, desc->RenderTarget[0].BlendOp); - wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_SEPARATEALPHABLENDENABLE, TRUE); - wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_SRCBLENDALPHA, - desc->RenderTarget[0].SrcBlendAlpha); - wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_DESTBLENDALPHA, - desc->RenderTarget[0].DestBlendAlpha); - wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_BLENDOPALPHA, - desc->RenderTarget[0].BlendOpAlpha); + if (desc->RenderTarget[0].BlendEnable) + { + wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_SRCBLEND, + desc->RenderTarget[0].SrcBlend); + wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_DESTBLEND, + desc->RenderTarget[0].DestBlend); + wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_BLENDOP, + desc->RenderTarget[0].BlendOp); + wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_SEPARATEALPHABLENDENABLE, TRUE); + wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_SRCBLENDALPHA, + desc->RenderTarget[0].SrcBlendAlpha); + wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_DESTBLENDALPHA, + desc->RenderTarget[0].DestBlendAlpha); + wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_BLENDOPALPHA, + desc->RenderTarget[0].BlendOpAlpha); + } FIXME("Color mask > 3 not implemented.\n"); wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_COLORWRITEENABLE, desc->RenderTarget[0].RenderTargetWriteMask);
participants (1)
-
Alexandre Julliard