ID2D1CommandSink1::SetPrimitiveBlend1 メソッド (d2d1_2.h)

新しいプリミティブ ブレンド モードを設定します。

構文

HRESULT SetPrimitiveBlend1(
  D2D1_PRIMITIVE_BLEND primitiveBlend
);

パラメーター

primitiveBlend

種類: D2D1_PRIMITIVE_BLEND

後続のプリミティブに適用されるプリミティブ ブレンド。

戻り値

種類: HRESULT

メソッドが成功すると、 S_OKが返されます。 失敗した場合は、 HRESULT エラー コードが返されます。

注釈

ブレンド モード

エイリアスレンダリング (MIN モードを除く) の場合、出力値 O は、プリミティブがターゲット ピクセルをカバーする量に基づいて 、値 blend(S, D) とターゲット ピクセル値を線形補間することによって計算されます。

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

  • O = 出力
  • S = ソース
  • SA = ソース アルファ
  • D = Destination
  • 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 = Min(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は EndDraw または Flush から返されます。

要件

要件
サポートされている最小のクライアント Windows 8.1 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d2d1_2.h

こちらもご覧ください

ID2D1CommandSink1