Freigeben über


IDCompositionAnimation::AddRepeat-Methode (dcompanimation.h)

Fügt ein wiederholtes Segment hinzu, das dazu führt, dass der angegebene Teil einer Animationsfunktion wiederholt wird.

Syntax

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

Parameter

[in] beginOffset

Typ: double

Der Offset in Sekunden vom Anfang der Animation bis zum Punkt, an dem die Wiederholung beginnen soll.

[in] durationToRepeat

Typ: double

Die Dauer eines Teils der Animation in Sekunden, der unmittelbar vor der von beginOffset angegebenen Startzeit liegt. Dies ist der Teil, der wiederholt wird.

Rückgabewert

Typ: HRESULT

Wenn die Funktion erfolgreich ist, gibt sie S_OK zurück. Andernfalls wird ein Fehlercode HRESULT zurückgegeben. Eine Liste der Fehlercodes finden Sie unter DirectComposition-Fehlercodes .

Hinweise

Diese Methode schlägt fehl, wenn einer der Parameter NaN, positive Unendlichkeit oder negative Unendlichkeit ist.

Da Animationssegmente in zunehmender Reihenfolge hinzugefügt werden müssen, schlägt diese Methode fehl, wenn der beginOffset-Parameter kleiner oder gleich dem beginOffset-Parameter des vorherigen Segments ist. Diese Methode schlägt auch fehl, wenn dies das erste Segment ist, das der Animationsfunktion hinzugefügt wird.

Dieses Animationssegment bleibt bis zur Anfangszeit des nächsten Segments wirksam. Wenn die Animationsfunktion keine weiteren Segmente enthält, bleibt dieses Segment auf unbestimmte Zeit wirksam.

Beispiele

Im folgenden Beispiel wird eine Animationsfunktion erstellt, die ein Wiederholungssegment enthält, und wendet die Animation auf die x- und y-Achsen einer Skalierungstransformation an.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile dcompanimation.h
Bibliothek Dcomp.lib
DLL Dcomp.dll

Weitere Informationen

IDCompositionAnimation