ID2D1CommandSink1::SetPrimitiveBlend1 方法 (d2d1_2.h)
设置新的基元混合模式。
语法
HRESULT SetPrimitiveBlend1(
D2D1_PRIMITIVE_BLEND primitiveBlend
);
参数
primitiveBlend
将应用于后续基元的基元混合。
返回值
类型: HRESULT
如果方法成功,则返回 S_OK。 如果失败,则返回 HRESULT 错误代码。
注解
混合模式
对于别名呈现 ((MIN 模式) 除外),输出值 O 是通过根据基元覆盖目标像素值 (S、D) 与目标像素值混合的线性内插来计算的。此处的表显示了别名和抗锯齿混合的基元混合模式。 表中列出的公式使用以下元素:
- O = 输出
- S = 源
- SA = Source Alpha
- D = 目标
- DA = Destination Alpha
- C = 像素覆盖率
基元混合模式 | 别名混合 | 抗锯齿混合 | 说明 |
---|---|---|---|
D2D1_PRIMITIVE_BLEND_SOURCE_OVER | O = (S + (1 – SA) * D) * C + D * (1 – C) | O = S * C + D * (1 – SA *C) | 标准源到目标混合模式。 |
D2D1_PRIMITIVE_BLEND_COPY | O = S * C + D * (1 – C) | O = S * C + D * (1 – C) | 源将复制到目标;忽略目标像素。 |
D2D1_PRIMITIVE_BLEND_MIN | O = 最小 (S + 1-SA、D) | O = Min (S * C + 1 – SA *C,D) | 生成的像素值使用源和目标像素值的最小值。 在 Windows 8 及更高版本中可用。 |
D2D1_PRIMITIVE_BLEND_ADD | O = (S + D) * C + D * (1 – C) | O = S * C + D | 生成的像素值是源像素值和目标像素值的总和。 在 Windows 8 及更高版本中可用。 |
基元混合将应用于在上下文上绘制的所有基元,除非这是使用 DrawImage API 上的 compositeMode 参数重写的。
基元混合适用于在上下文上绘制的任何基元的内部。 对于 DrawImage,图像矩形、偏移量和世界转换将暗示这一点。
如果基元混合不是 D2D1_PRIMITIVE_BLEND_OVER 则关闭 ClearType 呈现。 如果应用程序在这些模式下显式强制 ClearType 呈现,则绘图上下文将处于错误状态。 D2DERR_WRONG_STATE将从 EndDraw 或 Flush 返回。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8.1 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | d2d1_2.h |