[PATCH 3/3] d3d11: Set blend states only when blending is enabled.
Józef Kucia
jkucia at codeweavers.com
Thu Jun 2 04:14:14 CDT 2016
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
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);
--
2.7.3
More information about the wine-patches
mailing list