IDCompositionAnimation::AddRepeat メソッド (dcompanimation.h)
アニメーション関数の指定した部分を繰り返す繰り返しセグメントを追加します。
構文
HRESULT AddRepeat(
[in] double beginOffset,
[in] double durationToRepeat
);
パラメーター
[in] beginOffset
型: double
アニメーションの先頭から繰り返しを開始する位置までのオフセット (秒単位)。
[in] durationToRepeat
型: double
beginOffset で指定された開始時刻の直前のアニメーションの一部の継続時間 (秒単位)。 これは繰り返される部分です。
戻り値
型: HRESULT
関数が成功した場合は、S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。 エラー コードの一覧については、「 DirectComposition エラー コード 」を参照してください。
注釈
パラメーターのいずれかが NaN、正の無限大、または負の無限大である場合、このメソッドは失敗します。
アニメーション セグメントは順に追加する必要があるため、 beginOffset パラメーターが前のセグメントの beginOffset パラメーター以下の場合、このメソッドは失敗します。 このメソッドは、これがアニメーション関数に追加される最初のセグメントである場合にも失敗します。
このアニメーション セグメントは、次のセグメントの開始時刻まで有効なままです。 アニメーション関数にこれ以上セグメントが含まれない場合、このセグメントは無期限に有効なままになります。
例
次の例では、繰り返しセグメントを含むアニメーション関数を作成し、スケール変換の x 軸と y 軸にアニメーションを適用します。
HRESULT MyCreateAnimatedScaleTransform(IDCompositionDevice *pDevice,
IDCompositionVisual *pVisual)
{
HRESULT hr = S_OK;
IDCompositionAnimation *pAnimation = nullptr;
IDCompositionScaleTransform *pScaleTransform = nullptr;
// Validate the pointers.
if (pDevice == nullptr || pVisual == nullptr)
return E_INVALIDARG;
// Create an animation object.
hr = pDevice->CreateAnimation(&pAnimation);
if (SUCCEEDED(hr))
{
// Add segments to the animation function.
pAnimation->AddCubic(0, 1, -0.5, 0, 0);
pAnimation->AddRepeat(3.0, 3.0);
pAnimation->End(10, .5);
// Create a scale transform object.
hr = pDevice->CreateScaleTransform(&pScaleTransform);
}
if (SUCCEEDED(hr))
{
// Apply the animation to the x and y axes of the scale transform.
pScaleTransform->SetScaleX(pAnimation);
pScaleTransform->SetScaleY(pAnimation);
// Apply the scale transform to the visual.
hr = pVisual->SetTransform(pScaleTransform);
}
if (SUCCEEDED(hr))
{
// Commit the composition for rendering.
hr = pDevice->Commit();
}
// Clean up.
SafeRelease(&pAnimation);
SafeRelease(&pScaleTransform);
return hr;
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | dcompanimation.h |
Library | Dcomp.lib |
[DLL] | Dcomp.dll |