From: Heeyong Song Date: Tue, 2 Apr 2019 07:48:24 +0000 (+0900) Subject: [4.0] (AnimatedVectorImage) Ensure the progress is kept according to actions X-Git-Tag: submit/tizen_4.0/20190522.072854~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4527b0e4d65fdd891f57259eb1db8ca08acac219;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git [4.0] (AnimatedVectorImage) Ensure the progress is kept according to actions Change-Id: Ifdda34f50d1da431c4e2459ef8619cc572644beb --- 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 8b79fc5..7f530fa 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 @@ -156,6 +156,9 @@ void VectorRasterizeThread::StopAnimation() { mPlayState = DevelImageVisual::PlayState::STOPPED; + mCurrentFrame = mStartFrame; + mCurrentFrameUpdated = true; + DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::StopAnimation: Stop\n" ); } } @@ -330,8 +333,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 );