다음을 통해 공유


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
라이브러리 Dcomp.lib
DLL Dcomp.dll

추가 정보

IDCompositionAnimation