IDCompositionVisual::SetEffect メソッド (dcomp.h)

このビジュアルの Effect プロパティを設定します。 Effect プロパティは、このビジュアルに根ざしたサブツリーを背景とブレンドする方法を変更し、3D パースペクティブ変換をビジュアルに適用できます。

構文

HRESULT SetEffect(
  [in, optional] IDCompositionEffect *effect
);

パラメーター

[in, optional] effect

型: IDCompositionEffect*

効果オブジェクトへのポインター。 このパラメーターは、NULL でもかまいません。

戻り値

種類: HRESULT

関数が成功した場合は、S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。 エラー コードの一覧については、「 DirectComposition エラー コード 」を参照してください。

解説

このメソッドは、このビジュアルにルート化されたサブツリーが構成される暗黙的な画面外画面を作成します。 サーフェスは、指定した効果への入力の 1 つとして使用されます。 効果の出力は、コンポジションターゲットに直接構成されます。 一部の効果では、合成ターゲットも別の暗黙的な入力として使用されます。 これは通常、コンポジション効果やブレンド効果 (不透明度など) の場合で、コンポジション ターゲットが "背景" と見なされます。その場合、現在のビジュアルが "背後" にあるビジュアルは、現在のビジュアルがレンダリングされるときにコンポジション ターゲットに含まれ、このビジュアルが作成する "背景" と見なされます。

このビジュアルがビジュアル ツリーのルートではなく、その先祖の 1 つにも効果が適用されている場合、最も近い先祖によって作成される画面外サーフェスは、このビジュアルの効果が構成されるコンポジション ターゲットです。 それ以外の場合、コンポジションターゲットはルートコンポジションターゲットです。 その結果、合成効果とブレンド効果の背景には、最も近い先祖までの視覚エフェクトのみが含まれます。 逆に、現在のビジュアルの下でビジュアルに適用されるすべての効果は、新しく作成された画面外画面を背景として使用します。これは、最終的にエンド ユーザーがそれらのビジュアルを "背後" と認識する上で、それらのビジュアルがどのように構成されるかに影響する可能性があります。

effect パラメーターが NULL の場合、このビジュアルにはビットマップ効果は適用されません。 このビジュアルに関連付けられた以前の効果はすべて削除されます。 画面外のサーフェスも削除され、ビジュアル サブツリーは親コンポジション ターゲットに対して直接構成されます。これは、このビジュアルでのコンポジション効果またはブレンド効果のレンダリング方法にも影響する可能性があります。

効果が無効なポインターである場合、またはこのビジュアルを作成したのと同じ IDCompositionDevice インターフェイスによって作成されなかった場合、このメソッドは失敗します。 インターフェイスをカスタム実装にすることはできません。このメソッドでは、Microsoft DirectComposition によって作成されたインターフェイスのみを使用できます。

要件

   
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー dcomp.h
Library Dcomp.lib
[DLL] Dcomp.dll

関連項目

IDCompositionEffect

IDCompositionEffectGroup

IDCompositionMatrixTransform3D

IDCompositionRotateTransform3D

IDCompositionScaleTransform3D

IDCompositionTranslateTransform3D

IDCompositionVisual