Revert "[4.0] (AnimatedVectorImageVisual) Change renderer on stage again" 71/199871/1
authorHeeyong Song <heeyong.song@samsung.com>
Wed, 13 Feb 2019 07:31:38 +0000 (16:31 +0900)
committerHeeyong Song <heeyong.song@samsung.com>
Fri, 15 Feb 2019 06:07:49 +0000 (15:07 +0900)
This reverts commit 683bf0c0ed06950ec3eef64fb564104b6311c9bf.

Change-Id: I1d1d5eb9cd4009da0e083674701da2151b78793a

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

index a650f2e..0a7b0c6 100644 (file)
@@ -76,8 +76,7 @@ AnimatedVectorImageVisual::AnimatedVectorImageVisual( VisualFactoryCache& factor
   mPlacementActor(),
   mVectorRasterizeThread(),
   mLoopCount( LOOP_FOREVER ),
   mPlacementActor(),
   mVectorRasterizeThread(),
   mLoopCount( LOOP_FOREVER ),
-  mActionStatus( DevelAnimatedVectorImageVisual::Action::STOP ),
-  mNeedToSetRenderer( true )
+  mActionStatus( DevelAnimatedVectorImageVisual::Action::STOP )
 {
   // the rasterized image is with pre-multiplied alpha format
   mImpl->mFlags |= Impl::IS_PREMULTIPLIED_ALPHA;
 {
   // the rasterized image is with pre-multiplied alpha format
   mImpl->mFlags |= Impl::IS_PREMULTIPLIED_ALPHA;
@@ -206,8 +205,6 @@ void AnimatedVectorImageVisual::DoSetOnStage( Actor& actor )
 
   Geometry geometry = mFactoryCache.GetGeometry( VisualFactoryCache::QUAD_GEOMETRY );
 
 
   Geometry geometry = mFactoryCache.GetGeometry( VisualFactoryCache::QUAD_GEOMETRY );
 
-  mNeedToSetRenderer = true;
-
   mImpl->mRenderer = Renderer::New( geometry, shader );
 
   TextureSet textureSet = TextureSet::New();
   mImpl->mRenderer = Renderer::New( geometry, shader );
 
   TextureSet textureSet = TextureSet::New();
@@ -261,38 +258,33 @@ void AnimatedVectorImageVisual::OnSetTransform()
         uint32_t width = static_cast< uint32_t >( visualSize.width );
         uint32_t height = static_cast< uint32_t >( visualSize.height );
 
         uint32_t width = static_cast< uint32_t >( visualSize.width );
         uint32_t height = static_cast< uint32_t >( visualSize.height );
 
-        mVectorRasterizeThread = std::unique_ptr< VectorRasterizeThread >( new VectorRasterizeThread( mUrl.GetUrl() ) );
+        mVectorRasterizeThread = std::unique_ptr< VectorRasterizeThread >( new VectorRasterizeThread( mUrl.GetUrl(), mImpl->mRenderer, width, height ) );
 
 
-        mVectorRasterizeThread->SetRenderer( mImpl->mRenderer );
-        mVectorRasterizeThread->SetSize( width, height );
         mVectorRasterizeThread->SetResourceReadyCallback( new EventThreadCallback( MakeCallback( this, &AnimatedVectorImageVisual::OnResourceReady ) ) );
         mVectorRasterizeThread->SetAnimationFinishedCallback( new EventThreadCallback( MakeCallback( this, &AnimatedVectorImageVisual::OnAnimationFinished ) ) );
         mVectorRasterizeThread->SetLoopCount( mLoopCount );
         mVectorRasterizeThread->SetPlayRange( mPlayRange );
 
         mVectorRasterizeThread->Start();
         mVectorRasterizeThread->SetResourceReadyCallback( new EventThreadCallback( MakeCallback( this, &AnimatedVectorImageVisual::OnResourceReady ) ) );
         mVectorRasterizeThread->SetAnimationFinishedCallback( new EventThreadCallback( MakeCallback( this, &AnimatedVectorImageVisual::OnAnimationFinished ) ) );
         mVectorRasterizeThread->SetLoopCount( mLoopCount );
         mVectorRasterizeThread->SetPlayRange( mPlayRange );
 
         mVectorRasterizeThread->Start();
+
+        if( mActionStatus == DevelAnimatedVectorImageVisual::Action::PLAY )
+        {
+          mVectorRasterizeThread->StartAnimation();
+          DevelStage::SetRenderingBehavior( Stage::GetCurrent(), DevelStage::Rendering::CONTINUOUSLY );
+        }
+        else
+        {
+          // Render one frame
+          mVectorRasterizeThread->RenderFrame();
+        }
       }
       else
       {
         uint32_t width = static_cast< uint32_t >( visualSize.width );
         uint32_t height = static_cast< uint32_t >( visualSize.height );
 
       }
       else
       {
         uint32_t width = static_cast< uint32_t >( visualSize.width );
         uint32_t height = static_cast< uint32_t >( visualSize.height );
 
-        mVectorRasterizeThread->SetRenderer( mImpl->mRenderer );
         mVectorRasterizeThread->SetSize( width, height );
       }
         mVectorRasterizeThread->SetSize( width, height );
       }
-
-      mNeedToSetRenderer = false;
-
-      if( mActionStatus == DevelAnimatedVectorImageVisual::Action::PLAY )
-      {
-        mVectorRasterizeThread->StartAnimation();
-        DevelStage::SetRenderingBehavior( Stage::GetCurrent(), DevelStage::Rendering::CONTINUOUSLY );
-      }
-      else
-      {
-        // Render one frame
-        mVectorRasterizeThread->RenderFrame();
-      }
     }
   }
 }
     }
   }
 }
@@ -306,8 +298,7 @@ void AnimatedVectorImageVisual::OnDoAction( const Property::Index actionId, cons
     {
       if( IsOnStage())
       {
     {
       if( IsOnStage())
       {
-        // When renderer has changed, do not StartAnimation before SetRenderer(newOne)
-        if( mVectorRasterizeThread && !mNeedToSetRenderer )
+        if( mVectorRasterizeThread )
         {
           mVectorRasterizeThread->StartAnimation();
           DevelStage::SetRenderingBehavior( Stage::GetCurrent(), DevelStage::Rendering::CONTINUOUSLY );   //TODO: Should manage this globally
         {
           mVectorRasterizeThread->StartAnimation();
           DevelStage::SetRenderingBehavior( Stage::GetCurrent(), DevelStage::Rendering::CONTINUOUSLY );   //TODO: Should manage this globally
index 705cca1..28d79a4 100644 (file)
@@ -171,8 +171,6 @@ private:
 
   int32_t                                      mLoopCount;
   DevelAnimatedVectorImageVisual::Action::Type mActionStatus;
 
   int32_t                                      mLoopCount;
   DevelAnimatedVectorImageVisual::Action::Type mActionStatus;
-
-  bool                                         mNeedToSetRenderer;
 };
 
 } // namespace Internal
 };
 
 } // namespace Internal
index 9e0645b..6bbb264 100644 (file)
@@ -44,7 +44,7 @@ Debug::Filter* gVectorAnimationLogFilter = Debug::Filter::New( Debug::NoLogging,
 
 } // unnamed namespace
 
 
 } // unnamed namespace
 
-VectorRasterizeThread::VectorRasterizeThread( const std::string& url )
+VectorRasterizeThread::VectorRasterizeThread( const std::string& url, Renderer renderer, uint32_t width, uint32_t height )
 : mUrl( url ),
   mVectorRenderer(),
   mConditionalWait(),
 : mUrl( url ),
   mVectorRenderer(),
   mConditionalWait(),
@@ -57,8 +57,8 @@ VectorRasterizeThread::VectorRasterizeThread( const std::string& url )
   mTotalFrame( 0 ),
   mStartFrame( 0 ),
   mEndFrame( 0 ),
   mTotalFrame( 0 ),
   mStartFrame( 0 ),
   mEndFrame( 0 ),
-  mWidth( 0 ),
-  mHeight( 0 ),
+  mWidth( width ),
+  mHeight( height ),
   mLoopCount( LOOP_FOREVER ),
   mCurrentLoop( 0 ),
   mNeedRender( false ),
   mLoopCount( LOOP_FOREVER ),
   mCurrentLoop( 0 ),
   mNeedRender( false ),
@@ -66,7 +66,7 @@ VectorRasterizeThread::VectorRasterizeThread( const std::string& url )
   mResourceReady( false ),
   mLogFactory( Dali::Adaptor::Get().GetLogFactory() )
 {
   mResourceReady( false ),
   mLogFactory( Dali::Adaptor::Get().GetLogFactory() )
 {
-  mVectorRenderer = VectorAnimationRenderer::New( mUrl );
+  mVectorRenderer = VectorAnimationRenderer::New( mUrl, renderer, width, height );
 }
 
 VectorRasterizeThread::~VectorRasterizeThread()
 }
 
 VectorRasterizeThread::~VectorRasterizeThread()
@@ -102,18 +102,6 @@ void VectorRasterizeThread::Run()
   }
 }
 
   }
 }
 
-void VectorRasterizeThread::SetRenderer( Renderer renderer )
-{
-  ConditionalWait::ScopedLock lock( mConditionalWait );
-
-  mVectorRenderer.SetRenderer( renderer );
-
-  // Need to trigger resource ready again
-  mResourceReady = false;
-
-  DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::SetRenderer\n" );
-}
-
 void VectorRasterizeThread::SetSize( uint32_t width, uint32_t height )
 {
   ConditionalWait::ScopedLock lock( mConditionalWait );
 void VectorRasterizeThread::SetSize( uint32_t width, uint32_t height )
 {
   ConditionalWait::ScopedLock lock( mConditionalWait );
index 3ac638f..daa8058 100644 (file)
@@ -49,8 +49,11 @@ public:
    * @brief Constructor.
    *
    * @param[in] url The url of the vector animation file
    * @brief Constructor.
    *
    * @param[in] url The url of the vector animation file
+   * @param[in] renderer The renderer used to render the image
+   * @param[in] width The width of the content
+   * @param[in] height The height of the content
    */
    */
-  VectorRasterizeThread( const std::string& url );
+  VectorRasterizeThread( const std::string& url, Renderer renderer, uint32_t width, uint32_t height );
 
   /**
    * @brief Destructor.
 
   /**
    * @brief Destructor.
@@ -58,13 +61,6 @@ public:
   virtual ~VectorRasterizeThread();
 
   /**
   virtual ~VectorRasterizeThread();
 
   /**
-   * @brief Sets the renderer used to display the result image.
-   *
-   * @param[in] renderer The renderer used to display the result image
-   */
-  void SetRenderer( Renderer renderer );
-
-  /**
    * @brief Sets the target image size.
    *
    * @param[in] width The target image width
    * @brief Sets the target image size.
    *
    * @param[in] width The target image width