ID2D1CommandSink1::SetPrimitiveBlend1 方法 (d2d1_2.h)

设置新的基元混合模式。

语法

HRESULT SetPrimitiveBlend1(
  D2D1_PRIMITIVE_BLEND primitiveBlend
);

参数

primitiveBlend

类型: D2D1_PRIMITIVE_BLEND

将应用于后续基元的基元混合。

返回值

类型: 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 及更高版本中可用。
  具有不同不透明度和背景的 Direct2D 基元混合模式的插图。 具有不同不透明度和背景的基元混合模式的插图。

基元混合将应用于在上下文上绘制的所有基元,除非这是使用 DrawImage API 上的 compositeMode 参数重写的。

基元混合适用于在上下文上绘制的任何基元的内部。 对于 DrawImage,图像矩形、偏移量和世界转换将暗示这一点。

如果基元混合不是 D2D1_PRIMITIVE_BLEND_OVER 则关闭 ClearType 呈现。 如果应用程序在这些模式下显式强制 ClearType 呈现,则绘图上下文将处于错误状态。 D2DERR_WRONG_STATE将从 EndDrawFlush 返回。

要求

要求
最低受支持的客户端 Windows 8.1 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 d2d1_2.h

另请参阅

ID2D1CommandSink1