private ID3D11BlendState CreateNewBlendState(ref BlendStateDescription description) { BlendAttachmentDescription[] attachmentStates = description.AttachmentStates; Vortice.Direct3D11.BlendDescription d3dBlendStateDesc = new Vortice.Direct3D11.BlendDescription(); for (int i = 0; i < attachmentStates.Length; i++) { BlendAttachmentDescription state = attachmentStates[i]; d3dBlendStateDesc.RenderTarget[i].IsBlendEnabled = state.BlendEnabled; d3dBlendStateDesc.RenderTarget[i].RenderTargetWriteMask = ColorWriteEnable.All; d3dBlendStateDesc.RenderTarget[i].SourceBlend = D3D11Formats.VdToD3D11Blend(state.SourceColorFactor); d3dBlendStateDesc.RenderTarget[i].DestinationBlend = D3D11Formats.VdToD3D11Blend(state.DestinationColorFactor); d3dBlendStateDesc.RenderTarget[i].BlendOperation = D3D11Formats.VdToD3D11BlendOperation(state.ColorFunction); d3dBlendStateDesc.RenderTarget[i].SourceBlendAlpha = D3D11Formats.VdToD3D11Blend(state.SourceAlphaFactor); d3dBlendStateDesc.RenderTarget[i].DestinationBlendAlpha = D3D11Formats.VdToD3D11Blend(state.DestinationAlphaFactor); d3dBlendStateDesc.RenderTarget[i].BlendOperationAlpha = D3D11Formats.VdToD3D11BlendOperation(state.AlphaFunction); } d3dBlendStateDesc.AlphaToCoverageEnable = description.AlphaToCoverageEnabled; return(_device.CreateBlendState(d3dBlendStateDesc)); }