Win32 API 日本語リファレンス
ホームGraphics.Direct2D › D2D1_PRIMITIVE_BLEND

D2D1_PRIMITIVE_BLEND

列挙型
基底型i4

メンバー 5

名前10進16進説明
D2D1_PRIMITIVE_BLEND_SOURCE_OVER00x0標準の source-over-destination(ソースをデスティネーションに重ねる)ブレンドモードです。
D2D1_PRIMITIVE_BLEND_COPY10x1ソースがデスティネーションにコピーされます。デスティネーションのピクセルは無視されます。
D2D1_PRIMITIVE_BLEND_MIN20x2結果のピクセル値には、ソースとデスティネーションのピクセル値の最小値が使用されます。Windows 8 以降で使用できます。
D2D1_PRIMITIVE_BLEND_ADD30x3結果のピクセル値は、ソースとデスティネーションのピクセル値の合計になります。Windows 8 以降で使用できます。
D2D1_PRIMITIVE_BLEND_MAX40x4結果のピクセル値には、ソースとデスティネーションのピクセル値の最大値が使用されます。 Windows 10 以降で使用できます(ID21CommandSink4::SetPrimitiveBlend2 を使用して設定します)。

公式ドキュメント

すべての Direct2D プリミティブに対するジオメトリのブレンドモードを指定するために使用します。

解説(Remarks)

ブレンドモード

エイリアス処理されたレンダリング(MIN モードを除く)では、出力値 O は、プリミティブがデスティネーションのピクセルを覆う割合に基づいて、値 blend(S, D) とデスティネーションのピクセル値を線形補間することで計算されます。

次の表は、エイリアスありのブレンドとアンチエイリアスありのブレンドの両方について、プリミティブのブレンドモードを示しています。表に記載されている式では、次の要素を使用します。

プリミティブのブレンドモード エイリアスありのブレンド アンチエイリアスありのブレンド 説明
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 以降で使用できます。
不透明度と背景を変化させた Direct2D のプリミティブブレンドモードの図。 不透明度と背景を変化させたプリミティブブレンドモードの図です。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 Enum
import 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* = 4
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,
}
#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