From b4f3bbb0d784ad6f981351cae3d949f736b8ca36 Mon Sep 17 00:00:00 2001 From: Heeyong Song Date: Tue, 2 Apr 2019 16:48:24 +0900 Subject: [PATCH 1/1] (AnimatedVectorImage) Ensure the progress is kept according to actions Change-Id: Ifdda34f50d1da431c4e2459ef8619cc572644beb --- .../utc-Dali-AnimatedVectorImageVisual.cpp | 23 ++++++++++++++++++++++ .../vector-rasterize-thread.cpp | 6 ++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp index d2e6332..01716ed 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp @@ -648,6 +648,29 @@ int UtcDaliAnimatedVectorImageVisualJumpToCurrentProgress(void) value = map.Find( DevelImageVisual::Property::CURRENT_PROGRESS ); DALI_TEST_EQUALS( value->Get< float >(), 0.4f, TEST_LOCATION ); + // Change play range + attributes.Clear(); + attributes.Add( DevelImageVisual::Property::PLAY_RANGE, Vector2( 0.0f, 1.0f ) ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + + attributes.Clear(); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + + application.SendNotification(); + application.Render(); + + // Stop and jump to 0.2 + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes ); + + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 0.2f ); + + application.SendNotification(); + application.Render(); + + map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); + value = map.Find( DevelImageVisual::Property::CURRENT_PROGRESS ); + DALI_TEST_EQUALS( value->Get< float >(), 0.2f, TEST_LOCATION ); + END_TEST; } diff --git a/dali-toolkit/internal/visuals/animated-vector-image/vector-rasterize-thread.cpp b/dali-toolkit/internal/visuals/animated-vector-image/vector-rasterize-thread.cpp index da46e1e..25d0743 100644 --- a/dali-toolkit/internal/visuals/animated-vector-image/vector-rasterize-thread.cpp +++ b/dali-toolkit/internal/visuals/animated-vector-image/vector-rasterize-thread.cpp @@ -158,6 +158,9 @@ void VectorRasterizeThread::StopAnimation() { mPlayState = DevelImageVisual::PlayState::STOPPED; + mCurrentFrame = mStartFrame; + mCurrentFrameUpdated = true; + DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::StopAnimation: Stop\n" ); } } @@ -332,8 +335,7 @@ void VectorRasterizeThread::Rasterize() if( mPlayState == DevelImageVisual::PlayState::STOPPED ) { - // Reset the current frame and the current loop - mCurrentFrame = mStartFrame; + // Reset the current loop mCurrentLoop = 0; } mConditionalWait.Wait( lock ); -- 2.7.4