IdCompositionAnimation ::AddRepeat, méthode (dcompanimation.h)

Ajoute un segment de répétition qui entraîne la répétition de la partie spécifiée d’une fonction d’animation.

Syntaxe

HRESULT AddRepeat(
  [in] double beginOffset,
  [in] double durationToRepeat
);

Paramètres

[in] beginOffset

Type : double

Décalage, en secondes, entre le début de l’animation et le point auquel la répétition doit commencer.

[in] durationToRepeat

Type : double

Durée, en secondes, d’une partie de l’animation qui précède immédiatement l’heure de début spécifiée par beginOffset. Il s’agit de la partie qui sera répétée.

Valeur retournée

Type : HRESULT

Si la fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT. Pour obtenir la liste des codes d’erreur, consultez Codes d’erreur DirectComposition .

Remarques

Cette méthode échoue si l’un des paramètres est NaN, l’infini positif ou l’infini négatif.

Étant donné que les segments d’animation doivent être ajoutés dans l’ordre croissant, cette méthode échoue si le paramètre beginOffset est inférieur ou égal au paramètre beginOffset du segment précédent. Cette méthode échoue également s’il s’agit du premier segment à ajouter à la fonction d’animation.

Ce segment d’animation reste en vigueur jusqu’à l’heure de début du segment suivant. Si la fonction d’animation ne contient plus de segments, ce segment reste en vigueur indéfiniment.

Exemples

L’exemple suivant crée une fonction d’animation qui inclut un segment de répétition et applique l’animation aux axes x et y d’une transformation d’échelle.

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;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
Plateforme cible Windows
En-tête dcompanimation.h
Bibliothèque Dcomp.lib
DLL Dcomp.dll

Voir aussi

IDCompositionAnimation