vlc | branch: master | Steve Lhomme <[email protected]> | Mon Jan 15 13:45:08 2018 +0100| [fe1a66997b4541b3177886cdd6787a0f881ebf76] | committer: Steve Lhomme
direct3d11: clean and document the blend state > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fe1a66997b4541b3177886cdd6787a0f881ebf76 --- modules/video_output/win32/direct3d11.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index 0aef5aeebc..3482a4819b 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -1459,26 +1459,16 @@ static int Direct3D11CreateGenericResources(vout_display_t *vd) ID3D11BlendState *pSpuBlendState; D3D11_BLEND_DESC spuBlendDesc = { 0 }; spuBlendDesc.RenderTarget[0].BlendEnable = TRUE; - spuBlendDesc.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA; - spuBlendDesc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA; + spuBlendDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; + /* output colors */ spuBlendDesc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; - - spuBlendDesc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE; - spuBlendDesc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ZERO; + spuBlendDesc.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA; /* keep source intact */ + spuBlendDesc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA; /* RGB colors + inverse alpha (255 is full opaque) */ + /* output alpha */ spuBlendDesc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; + spuBlendDesc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE; /* keep source intact */ + spuBlendDesc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ZERO; /* discard */ - spuBlendDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; - - spuBlendDesc.RenderTarget[1].BlendEnable = TRUE; - spuBlendDesc.RenderTarget[1].SrcBlend = D3D11_BLEND_ONE; - spuBlendDesc.RenderTarget[1].DestBlend = D3D11_BLEND_ZERO; - spuBlendDesc.RenderTarget[1].BlendOp = D3D11_BLEND_OP_ADD; - - spuBlendDesc.RenderTarget[1].SrcBlendAlpha = D3D11_BLEND_ONE; - spuBlendDesc.RenderTarget[1].DestBlendAlpha = D3D11_BLEND_ZERO; - spuBlendDesc.RenderTarget[1].BlendOpAlpha = D3D11_BLEND_OP_ADD; - - spuBlendDesc.RenderTarget[1].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; hr = ID3D11Device_CreateBlendState(sys->d3d_dev.d3ddevice, &spuBlendDesc, &pSpuBlendState); if (FAILED(hr)) { msg_Err(vd, "Could not create SPU blend state. (hr=0x%lX)", hr); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
