[4.0] (AnimatedVectorImageVisual) Fix flickering issue 53/197053/1
authorHeeyong Song <heeyong.song@samsung.com>
Wed, 9 Jan 2019 06:32:09 +0000 (15:32 +0900)
committerHeeyong Song <heeyong.song@samsung.com>
Wed, 9 Jan 2019 06:32:09 +0000 (15:32 +0900)
Change-Id: I55bff4a1299b470fbaf0155f21e76365170013f2

dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp

index a650f2e..b731c5f 100644 (file)
@@ -221,8 +221,16 @@ void AnimatedVectorImageVisual::DoSetOnStage( Actor& actor )
   // Hold the weak handle of the placement actor and delay the adding of renderer until the rasterization is finished.
   mPlacementActor = actor;
 
-  // This visual needs it's size set before it can be rasterized hence set ResourceReady once on stage
-  ResourceReady( Toolkit::Visual::ResourceStatus::READY );
+  if( mVectorRasterizeThread )
+  {
+    // We can use the previous rendered image
+    mVectorRasterizeThread->SetRenderer( mImpl->mRenderer );
+
+    actor.AddRenderer( mImpl->mRenderer );
+    mPlacementActor.Reset();
+
+    ResourceReady( Toolkit::Visual::ResourceStatus::READY );
+  }
 }
 
 void AnimatedVectorImageVisual::DoSetOffStage( Actor& actor )
@@ -362,6 +370,8 @@ void AnimatedVectorImageVisual::OnResourceReady()
 
     Stage::GetCurrent().KeepRendering( 0.0f );
   }
+
+  ResourceReady( Toolkit::Visual::ResourceStatus::READY );
 }
 
 void AnimatedVectorImageVisual::OnAnimationFinished()