IDCompositionVisual3::SetTransform(IDCompositionTransform3D*) メソッド (dcomp.h)
このビジュアルの Transform プロパティを、指定した 3D 変換オブジェクトに設定します。
構文
HRESULT SetTransform(
[in, optional] IDCompositionTransform3D *transform
);
パラメーター
[in, optional] transform
このビジュアルの座標系を変更するために使用される変換オブジェクト。 このパラメーターは、 IDCompositionTransform インターフェイスまたはその派生インターフェイスのいずれかを指すことができます。 このパラメーターは、NULL でもかまいません。
戻り値
種類: HRESULT
関数が成功した場合は、S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。 エラー コードの一覧については、「 DirectComposition エラー コード 」を参照してください。
解説
Transform プロパティを設定すると、このビジュアルにルート化されたビジュアル サブツリー全体の座標系が変換されます。 このビジュアルの Clip プロパティを指定すると、クリップの四角形も変換されます。
Transform プロパティで以前に変換行列を指定した場合、新しく指定した変換オブジェクトによって変換行列が置き換えられます。
Transform プロパティで指定された変換は、OffsetX プロパティと OffsetY プロパティの後に適用されます。 言い換えると、Transform プロパティと OffsetX プロパティと OffsetY プロパティの設定の効果は、変換グループの Transform プロパティのみを設定する場合と同じです。この場合、グループの最初のメンバーは、同じ OffsetX 値と OffsetY 値を持つ IDCompositionTranslateTransform オブジェクトになります。 ただし、 IDCompositionVisual::SetOffsetX メソッドと SetOffsetY メソッドは、少し高速であるため、可能な限り使用する必要があります。
変換が無効なポインターであるか、このビジュアルを作成したのと同じ IDCompositionDevice インターフェイスによって作成されなかった場合、このメソッドは失敗します。 インターフェイスをカスタム実装にすることはできません。このメソッドでは、Microsoft DirectComposition によって作成されたインターフェイスのみを使用できます。
transform パラメーターが NULL の場合、このビジュアルの座標系は、OffsetX プロパティと OffsetY プロパティによってのみ変換されます。 Transform プロパティを NULL に設定することは、指定された行列が ID 行列である IDCompositionMatrixTransform オブジェクトに設定することと同じです。 ただし、アプリケーションでは、少し高速であるため、可能な限り Transform プロパティを NULL に設定する必要があります。
OffsetX プロパティと OffsetY プロパティが 0 に設定され、Transform プロパティが NULL に設定されている場合、ビジュアルの座標系は親の座標系と同じです。
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | dcomp.h |
Library | Dcomp.lib |
[DLL] | Dcomp.dll |
関連項目
IDCompositionTranslateTransform