次の方法で共有


D2D1_PRIMITIVE_BLEND列挙 (d2d1_1.h)

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

構文

typedef enum D2D1_PRIMITIVE_BLEND {
  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_FORCE_DWORD = 0xffffffff
} ;

定数

 
D2D1_PRIMITIVE_BLEND_SOURCE_OVER
値: 0
標準のソースオーバーターゲット ブレンド モード。
D2D1_PRIMITIVE_BLEND_COPY
値: 1
ソースはコピー先にコピーされます。コピー先のピクセルは無視されます。
D2D1_PRIMITIVE_BLEND_MIN
値: 2
結果のピクセル値では、ソースとターゲットのピクセル値の最小値が使用されます。 Windows 8 以降で使用できます。
D2D1_PRIMITIVE_BLEND_ADD
値: 3
結果として得られるピクセル値は、ソースとターゲットのピクセル値の合計です。 Windows 8 以降で使用できます。
D2D1_PRIMITIVE_BLEND_MAX
値: 4
結果のピクセル値では、ソースとターゲットのピクセル値の最大値が使用されます。
Windows 10 以降で使用できます (ID21CommandSink4::SetPrimitiveBlend2 を使用して設定)。
D2D1_PRIMITIVE_BLEND_FORCE_DWORD
値: 0xffffffff

解説

ブレンド モード

エイリアス レンダリング (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) 標準のソースオーバーターゲット ブレンド モード。
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 プリミティブ ブレンド モードの図。 不透明度と背景が異なるプリミティブ ブレンド モードの図。

要件

   
サポートされている最小のクライアント Windows 8 および Windows 7 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 および Windows Server 2008 R2 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
Header d2d1_1.h

関連項目

ID2D1DeviceContext::GetPrimitiveBlend

ID2D1DeviceContext::SetPrimitiveBlend