=?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