Józef Kucia : d3d11: Normalize D3D11_BLEND_DESC.
Module: wine Branch: master Commit: 66996c602d61f1c5ec1040a5a3526480a6b8744c URL: https://source.winehq.org/git/wine.git/?a=commit;h=66996c602d61f1c5ec1040a5a... Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Thu Sep 6 22:01:55 2018 +0200 d3d11: Normalize D3D11_BLEND_DESC. 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/state.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/dlls/d3d11/state.c b/dlls/d3d11/state.c index d4c3bef..9848690 100644 --- a/dlls/d3d11/state.c +++ b/dlls/d3d11/state.c @@ -328,12 +328,24 @@ HRESULT d3d_blend_state_create(struct d3d_device *device, const D3D11_BLEND_DESC { j = desc->IndependentBlendEnable ? i : 0; tmp_desc.RenderTarget[i].BlendEnable = desc->RenderTarget[j].BlendEnable; - tmp_desc.RenderTarget[i].SrcBlend = desc->RenderTarget[j].SrcBlend; - tmp_desc.RenderTarget[i].DestBlend = desc->RenderTarget[j].DestBlend; - tmp_desc.RenderTarget[i].BlendOp = desc->RenderTarget[j].BlendOp; - tmp_desc.RenderTarget[i].SrcBlendAlpha = desc->RenderTarget[j].SrcBlendAlpha; - tmp_desc.RenderTarget[i].DestBlendAlpha = desc->RenderTarget[j].DestBlendAlpha; - tmp_desc.RenderTarget[i].BlendOpAlpha = desc->RenderTarget[j].BlendOpAlpha; + if (tmp_desc.RenderTarget[i].BlendEnable) + { + tmp_desc.RenderTarget[i].SrcBlend = desc->RenderTarget[j].SrcBlend; + tmp_desc.RenderTarget[i].DestBlend = desc->RenderTarget[j].DestBlend; + tmp_desc.RenderTarget[i].BlendOp = desc->RenderTarget[j].BlendOp; + tmp_desc.RenderTarget[i].SrcBlendAlpha = desc->RenderTarget[j].SrcBlendAlpha; + tmp_desc.RenderTarget[i].DestBlendAlpha = desc->RenderTarget[j].DestBlendAlpha; + tmp_desc.RenderTarget[i].BlendOpAlpha = desc->RenderTarget[j].BlendOpAlpha; + } + else + { + tmp_desc.RenderTarget[i].SrcBlend = D3D11_BLEND_ONE; + tmp_desc.RenderTarget[i].DestBlend = D3D11_BLEND_ZERO; + tmp_desc.RenderTarget[i].BlendOp = D3D11_BLEND_OP_ADD; + tmp_desc.RenderTarget[i].SrcBlendAlpha = D3D11_BLEND_ONE; + tmp_desc.RenderTarget[i].DestBlendAlpha = D3D11_BLEND_ZERO; + tmp_desc.RenderTarget[i].BlendOpAlpha = D3D11_BLEND_OP_ADD; + } tmp_desc.RenderTarget[i].RenderTargetWriteMask = desc->RenderTarget[j].RenderTargetWriteMask; if (i > 3 && tmp_desc.RenderTarget[i].RenderTargetWriteMask != D3D11_COLOR_WRITE_ENABLE_ALL)
participants (1)
-
Alexandre Julliard