=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: d3d11: Set blend states only when blending is enabled.
Alexandre Julliard
julliard at winehq.org
Thu Jun 2 10:50:00 CDT 2016
Module: wine
Branch: master
Commit: 022867e5b15a9a986f24bfbbedb4f06ccf3bf351
URL: http://source.winehq.org/git/wine.git/?a=commit;h=022867e5b15a9a986f24bfbbedb4f06ccf3bf351
Author: Józef Kucia <jkucia at 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 at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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);
More information about the wine-cvs
mailing list