Merge "Check renderer when call DisplayNextFrame()" into devel/master
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Thu, 17 Dec 2020 10:59:33 +0000 (10:59 +0000)
committerGerrit Code Review <gerrit@review>
Thu, 17 Dec 2020 10:59:33 +0000 (10:59 +0000)
dali-toolkit/internal/visuals/animated-image/animated-image-visual.cpp

index cb900a4..5a83d92 100755 (executable)
@@ -510,6 +510,7 @@ void AnimatedImageVisual::DoSetOffScene( Actor& actor )
   actor.RemoveRenderer( mImpl->mRenderer );
   mImpl->mRenderer.Reset();
   mPlacementActor.Reset();
+  mStartFirstFrame = false;
 }
 
 void AnimatedImageVisual::OnSetTransform()
@@ -608,12 +609,13 @@ void AnimatedImageVisual::StartFirstFrame( TextureSet& textureSet )
   if(mImpl->mRenderer)
   {
     mImpl->mRenderer.SetTextures( textureSet );
-  }
-  Actor actor = mPlacementActor.GetHandle();
-  if( actor )
-  {
-    actor.AddRenderer( mImpl->mRenderer );
-    mPlacementActor.Reset();
+
+    Actor actor = mPlacementActor.GetHandle();
+    if( actor )
+    {
+      actor.AddRenderer( mImpl->mRenderer );
+      mPlacementActor.Reset();
+    }
   }
 
   if( mFrameCount > 1 )
@@ -764,7 +766,10 @@ bool AnimatedImageVisual::DisplayNextFrame()
     if( textureSet )
     {
       SetImageSize( textureSet );
-      mImpl->mRenderer.SetTextures( textureSet );
+      if( mImpl->mRenderer )
+      {
+        mImpl->mRenderer.SetTextures( textureSet );
+      }
     }
 
     continueTimer = ( mActionStatus == DevelAnimatedImageVisual::Action::PLAY ) ? true : false;