[Tizen] Check renderer when call DisplayNextFrame() 15/249315/3 accepted/tizen/6.0/unified/20201210.223947 submit/tizen_6.0/20201210.091119
authorSunghyun Kim <scholb.kim@samsung.com>
Thu, 10 Dec 2020 05:55:06 +0000 (14:55 +0900)
committerSunghyun Kim <scholb.kim@samsung.com>
Thu, 10 Dec 2020 07:56:46 +0000 (16:56 +0900)
Sometimes DisplayNextFrame() is called even if animatedImageVisual is
disposed.
for avoid this issue, i added this patch.

Change-Id: I4912dbc38e2c911bc7bbfe7815a8fc8f6b9f4d37

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

index a6332c2..19cd013 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 )
@@ -762,7 +764,10 @@ bool AnimatedImageVisual::DisplayNextFrame()
     if( textureSet )
     {
       SetImageSize( textureSet );
-      mImpl->mRenderer.SetTextures( textureSet );
+      if( mImpl->mRenderer )
+      {
+        mImpl->mRenderer.SetTextures( textureSet );
+      }
     }
   }