ホーム › Graphics.Direct2D › D2D1_PRIMITIVE_BLEND
D2D1_PRIMITIVE_BLEND
列挙型メンバー 5
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| D2D1_PRIMITIVE_BLEND_SOURCE_OVER | 0 | 0x0 | 標準の source-over-destination(ソースをデスティネーションに重ねる)ブレンドモードです。 |
| D2D1_PRIMITIVE_BLEND_COPY | 1 | 0x1 | ソースがデスティネーションにコピーされます。デスティネーションのピクセルは無視されます。 |
| D2D1_PRIMITIVE_BLEND_MIN | 2 | 0x2 | 結果のピクセル値には、ソースとデスティネーションのピクセル値の最小値が使用されます。Windows 8 以降で使用できます。 |
| D2D1_PRIMITIVE_BLEND_ADD | 3 | 0x3 | 結果のピクセル値は、ソースとデスティネーションのピクセル値の合計になります。Windows 8 以降で使用できます。 |
| D2D1_PRIMITIVE_BLEND_MAX | 4 | 0x4 | 結果のピクセル値には、ソースとデスティネーションのピクセル値の最大値が使用されます。 Windows 10 以降で使用できます(ID21CommandSink4::SetPrimitiveBlend2 を使用して設定します)。 |
公式ドキュメント
すべての Direct2D プリミティブに対するジオメトリのブレンドモードを指定するために使用します。
解説(Remarks)
ブレンドモード
エイリアス処理されたレンダリング(MIN モードを除く)では、出力値 O は、プリミティブがデスティネーションのピクセルを覆う割合に基づいて、値 blend(S, D) とデスティネーションのピクセル値を線形補間することで計算されます。次の表は、エイリアスありのブレンドとアンチエイリアスありのブレンドの両方について、プリミティブのブレンドモードを示しています。表に記載されている式では、次の要素を使用します。
- O = 出力
- S = ソース
- SA = ソースのアルファ
- D = デスティネーション
- DA = デスティネーションのアルファ
- C = ピクセルのカバレッジ
| プリミティブのブレンドモード | エイリアスありのブレンド | アンチエイリアスありのブレンド | 説明 |
|---|---|---|---|
| D2D1_PRIMITIVE_BLEND_SOURCE_OVER | O = (S + (1 – SA) * D) * C + D * (1 – C) | O = S * C + D *(1 – SA *C) | 標準の source-over-destination(ソースをデスティネーションに重ねる)ブレンドモードです。 |
| D2D1_PRIMITIVE_BLEND_COPY | O = S * C + D * (1 – C) | O = S * C + D * (1 – C) | ソースがデスティネーションにコピーされます。デスティネーションのピクセルは無視されます。 |
| D2D1_PRIMITIVE_BLEND_MIN | O = Min(S + 1-SA, D) | O = Min(S * C + 1 – SA *C, D) | 結果のピクセル値には、ソースとデスティネーションのピクセル値の最小値が使用されます。Windows 8.1 以降で使用できます。 |
| D2D1_PRIMITIVE_BLEND_ADD | O = (S + D) * C + D * (1 – C) | O = S * C + D | 結果のピクセル値は、ソースとデスティネーションのピクセル値の合計になります。Windows 8.1 以降で使用できます。 |
不透明度と背景を変化させたプリミティブブレンドモードの図です。出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum D2D1_PRIMITIVE_BLEND : int {
D2D1_PRIMITIVE_BLEND_SOURCE_OVER = 0,
D2D1_PRIMITIVE_BLEND_COPY = 1,
D2D1_PRIMITIVE_BLEND_MIN = 2,
D2D1_PRIMITIVE_BLEND_ADD = 3,
D2D1_PRIMITIVE_BLEND_MAX = 4
} D2D1_PRIMITIVE_BLEND;public enum D2D1_PRIMITIVE_BLEND : int
{
D2D1_PRIMITIVE_BLEND_SOURCE_OVER = 0,
D2D1_PRIMITIVE_BLEND_COPY = 1,
D2D1_PRIMITIVE_BLEND_MIN = 2,
D2D1_PRIMITIVE_BLEND_ADD = 3,
D2D1_PRIMITIVE_BLEND_MAX = 4,
}Public Enum D2D1_PRIMITIVE_BLEND As Integer
D2D1_PRIMITIVE_BLEND_SOURCE_OVER = 0
D2D1_PRIMITIVE_BLEND_COPY = 1
D2D1_PRIMITIVE_BLEND_MIN = 2
D2D1_PRIMITIVE_BLEND_ADD = 3
D2D1_PRIMITIVE_BLEND_MAX = 4
End Enumimport enum
class D2D1_PRIMITIVE_BLEND(enum.IntEnum):
D2D1_PRIMITIVE_BLEND_SOURCE_OVER = 0
D2D1_PRIMITIVE_BLEND_COPY = 1
D2D1_PRIMITIVE_BLEND_MIN = 2
D2D1_PRIMITIVE_BLEND_ADD = 3
D2D1_PRIMITIVE_BLEND_MAX = 4// D2D1_PRIMITIVE_BLEND
pub const D2D1_PRIMITIVE_BLEND_SOURCE_OVER: i32 = 0;
pub const D2D1_PRIMITIVE_BLEND_COPY: i32 = 1;
pub const D2D1_PRIMITIVE_BLEND_MIN: i32 = 2;
pub const D2D1_PRIMITIVE_BLEND_ADD: i32 = 3;
pub const D2D1_PRIMITIVE_BLEND_MAX: i32 = 4;// D2D1_PRIMITIVE_BLEND
const (
D2D1_PRIMITIVE_BLEND_SOURCE_OVER int32 = 0
D2D1_PRIMITIVE_BLEND_COPY int32 = 1
D2D1_PRIMITIVE_BLEND_MIN int32 = 2
D2D1_PRIMITIVE_BLEND_ADD int32 = 3
D2D1_PRIMITIVE_BLEND_MAX int32 = 4
)const
D2D1_PRIMITIVE_BLEND_SOURCE_OVER = 0;
D2D1_PRIMITIVE_BLEND_COPY = 1;
D2D1_PRIMITIVE_BLEND_MIN = 2;
D2D1_PRIMITIVE_BLEND_ADD = 3;
D2D1_PRIMITIVE_BLEND_MAX = 4;// D2D1_PRIMITIVE_BLEND
pub const D2D1_PRIMITIVE_BLEND_SOURCE_OVER: i32 = 0;
pub const D2D1_PRIMITIVE_BLEND_COPY: i32 = 1;
pub const D2D1_PRIMITIVE_BLEND_MIN: i32 = 2;
pub const D2D1_PRIMITIVE_BLEND_ADD: i32 = 3;
pub const D2D1_PRIMITIVE_BLEND_MAX: i32 = 4;const
D2D1_PRIMITIVE_BLEND_SOURCE_OVER* = 0
D2D1_PRIMITIVE_BLEND_COPY* = 1
D2D1_PRIMITIVE_BLEND_MIN* = 2
D2D1_PRIMITIVE_BLEND_ADD* = 3
D2D1_PRIMITIVE_BLEND_MAX* = 4enum D2D1_PRIMITIVE_BLEND : int {
D2D1_PRIMITIVE_BLEND_SOURCE_OVER = 0,
D2D1_PRIMITIVE_BLEND_COPY = 1,
D2D1_PRIMITIVE_BLEND_MIN = 2,
D2D1_PRIMITIVE_BLEND_ADD = 3,
D2D1_PRIMITIVE_BLEND_MAX = 4,
}#define global D2D1_PRIMITIVE_BLEND_SOURCE_OVER 0x0
#define global D2D1_PRIMITIVE_BLEND_COPY 0x1
#define global D2D1_PRIMITIVE_BLEND_MIN 0x2
#define global D2D1_PRIMITIVE_BLEND_ADD 0x3
#define global D2D1_PRIMITIVE_BLEND_MAX 0x4