D2D1_PRIMITIVE_BLEND enumeration (d2d1_1.h)
Used to specify the geometric blend mode for all Direct2D primitives.
Syntax
typedef enum D2D1_PRIMITIVE_BLEND {
D2D1_PRIMITIVE_BLEND_SOURCE_OVER,
D2D1_PRIMITIVE_BLEND_COPY,
D2D1_PRIMITIVE_BLEND_MIN,
D2D1_PRIMITIVE_BLEND_ADD,
D2D1_PRIMITIVE_BLEND_MAX,
D2D1_PRIMITIVE_BLEND_FORCE_DWORD
} ;
Constants
Name | Description |
---|---|
D2D1_PRIMITIVE_BLEND_SOURCE_OVER | The standard source-over-destination blend mode. |
D2D1_PRIMITIVE_BLEND_COPY | The source is copied to the destination; the destination pixels are ignored. |
D2D1_PRIMITIVE_BLEND_MIN | The resulting pixel values use the minimum of the source and destination pixel values. Available in Windows 8 and later. |
D2D1_PRIMITIVE_BLEND_ADD | The resulting pixel values are the sum of the source and destination pixel values. Available in Windows 8 and later. |
D2D1_PRIMITIVE_BLEND_MAX | The resulting pixel values use the maximum of the source and destination pixel values. Available in Windows 10 and later (set using ID21CommandSink4::SetPrimitiveBlend2). |
D2D1_PRIMITIVE_BLEND_FORCE_DWORD |
Remarks
Blend modes
For aliased rendering (except for MIN mode), the output value O is computed by linearly interpolating the value blend(S, D) with the destination pixel value, based on the amount that the primitive covers the destination pixel.The table here shows the primitive blend modes for both aliased and antialiased blending. The equations listed in the table use these elements:
- O = Output
- S = Source
- SA = Source Alpha
- D = Destination
- DA = Destination Alpha
- C = Pixel coverage
Primitive blend mode | Aliased blending | Antialiased blending | Description |
---|---|---|---|
D2D1_PRIMITIVE_BLEND_SOURCE_OVER | O = (S + (1 – SA) * D) * C + D * (1 – C) | O = S * C + D *(1 – SA *C) | The standard source-over-destination blend mode. |
D2D1_PRIMITIVE_BLEND_COPY | O = S * C + D * (1 – C) | O = S * C + D * (1 – C) | The source is copied to the destination; the destination pixels are ignored. |
D2D1_PRIMITIVE_BLEND_MIN | O = Min(S + 1-SA, D) | O = Min(S * C + 1 – SA *C, D) | The resulting pixel values use the minimum of the source and destination pixel values. Available in Windows 8.1 and later. |
D2D1_PRIMITIVE_BLEND_ADD | O = (S + D) * C + D * (1 – C) | O = S * C + D | The resulting pixel values are the sum of the source and destination pixel values. Available in Windows 8.1 and later. |

Requirements
Minimum supported client | Windows 8 and Platform Update for Windows 7 [desktop apps | UWP apps] |
Minimum supported server | Windows Server 2012 and Platform Update for Windows Server 2008 R2 [desktop apps | UWP apps] |
Header | d2d1_1.h |