D3D11_BLEND_DESC1 结构 (d3d11_1.h)
描述在调用 D3D11Device1::CreateBlendState1 时用于创建混合状态对象的混合状态。
注意
Direct3D 11.1 运行时支持此结构,该运行时在 Windows 8 及更高版本的操作系统上可用。
语法
typedef struct D3D11_BLEND_DESC1 {
BOOL AlphaToCoverageEnable;
BOOL IndependentBlendEnable;
D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[8];
} D3D11_BLEND_DESC1;
成员
AlphaToCoverageEnable
类型: BOOL
指定在将像素设置为呈现目标时,是否使用 alpha-to-coverage 作为多重采样技术。 有关使用 alpha-to-coverage 的详细信息,请参阅 Alpha-To-Coverage。
IndependentBlendEnable
类型: BOOL
指定是否在同时呈现目标中启用独立混合。 设置为 TRUE 可启用独立混合。 如果设置为 FALSE,则仅使用 RenderTarget[0] 成员; RenderTarget[1..7] 将被忽略。
有关限制,请参阅 备注 部分。
RenderTarget[8]
类型: D3D11_RENDER_TARGET_BLEND_DESC1[8]
描述呈现目标的混合状态的 D3D11_RENDER_TARGET_BLEND_DESC1 结构的数组;这些对应于可同时绑定到 输出合并阶段 的八个呈现目标。
备注
下面是混合状态的默认值。
状态 | 默认值 |
---|---|
AlphaToCoverageEnable | FALSE |
IndependentBlendEnable | FALSE |
RenderTarget[0]。BlendEnable | FALSE |
RenderTarget[0]。LogicOpEnable | FALSE |
RenderTarget[0]。SrcBlend | D3D11_BLEND_ONE |
RenderTarget[0]。DestBlend | D3D11_BLEND_ZERO |
RenderTarget[0]。BlendOp | D3D11_BLEND_OP_ADD |
RenderTarget[0]。SrcBlendAlpha | D3D11_BLEND_ONE |
RenderTarget[0]。DestBlendAlpha | D3D11_BLEND_ZERO |
RenderTarget[0]。BlendOpAlpha | D3D11_BLEND_OP_ADD |
RenderTarget[0]。LogicOp | D3D11_LOGIC_OP_NOOP |
RenderTarget[0]。RenderTargetWriteMask | D3D11_COLOR_WRITE_ENABLE_ALL |
如果驱动程序类型设置为 D3D_DRIVER_TYPE_HARDWARE,则功能级别设置为小于或等于 D3D_FEATURE_LEVEL_9_3,呈现目标的像素格式设置为 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB、 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB 或 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB,则显示设备在标准 RGB (sRGB) 空间中执行混合,而不是在线性空间中执行混合。 但是,如果功能级别设置为大于 D3D_FEATURE_LEVEL_9_3,则显示设备将在线性空间中执行混合,这是理想的选择。
将 RenderTarget[0] () 的 RenderTarget 数组的第一个元素的 LogicOpEnable 成员设置为 TRUE 时,还必须将 RenderTarget[0] 的 BlendEnable 成员设置为 FALSE,并将此D3D11_BLEND_DESC1的 IndependentBlendEnable 成员设置为 FALSE。 这反映了硬件中的限制,即不能将逻辑操作与跨多个呈现目标混合混合,并且使用逻辑操作时,必须将相同的逻辑操作应用于所有呈现目标。
要求
最低受支持的客户端 | 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 和适用于 Windows Server 2008 R2 的平台更新 [桌面应用 |UWP 应用] |
标头 | d3d11_1.h |