From: Heeyong Song Date: Wed, 13 Feb 2019 07:31:38 +0000 (+0900) Subject: Revert "[4.0] (AnimatedVectorImageVisual) Change renderer on stage again" X-Git-Tag: submit/tizen_4.0/20190522.072854~9 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=4753f6868b9926dd53bb2f81bd3145c0fa7d5118 Revert "[4.0] (AnimatedVectorImageVisual) Change renderer on stage again" This reverts commit 683bf0c0ed06950ec3eef64fb564104b6311c9bf. Change-Id: I1d1d5eb9cd4009da0e083674701da2151b78793a --- diff --git a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp index a650f2e..0a7b0c6 100644 --- a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp +++ b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp @@ -76,8 +76,7 @@ AnimatedVectorImageVisual::AnimatedVectorImageVisual( VisualFactoryCache& factor 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; @@ -206,8 +205,6 @@ void AnimatedVectorImageVisual::DoSetOnStage( Actor& actor ) Geometry geometry = mFactoryCache.GetGeometry( VisualFactoryCache::QUAD_GEOMETRY ); - mNeedToSetRenderer = true; - 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 ); - 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(); + + 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 ); - mVectorRasterizeThread->SetRenderer( mImpl->mRenderer ); 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()) { - // 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 diff --git a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.h b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.h index 705cca1..28d79a4 100644 --- a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.h +++ b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.h @@ -171,8 +171,6 @@ private: int32_t mLoopCount; DevelAnimatedVectorImageVisual::Action::Type mActionStatus; - - bool mNeedToSetRenderer; }; } // namespace Internal 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 9e0645b..6bbb264 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 @@ -44,7 +44,7 @@ Debug::Filter* gVectorAnimationLogFilter = Debug::Filter::New( Debug::NoLogging, } // 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(), @@ -57,8 +57,8 @@ VectorRasterizeThread::VectorRasterizeThread( const std::string& url ) mTotalFrame( 0 ), mStartFrame( 0 ), mEndFrame( 0 ), - mWidth( 0 ), - mHeight( 0 ), + mWidth( width ), + mHeight( height ), mLoopCount( LOOP_FOREVER ), mCurrentLoop( 0 ), mNeedRender( false ), @@ -66,7 +66,7 @@ VectorRasterizeThread::VectorRasterizeThread( const std::string& url ) mResourceReady( false ), mLogFactory( Dali::Adaptor::Get().GetLogFactory() ) { - mVectorRenderer = VectorAnimationRenderer::New( mUrl ); + mVectorRenderer = VectorAnimationRenderer::New( mUrl, renderer, width, height ); } 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 ); diff --git a/dali-toolkit/internal/visuals/animated-vector-image/vector-rasterize-thread.h b/dali-toolkit/internal/visuals/animated-vector-image/vector-rasterize-thread.h index 3ac638f..daa8058 100644 --- a/dali-toolkit/internal/visuals/animated-vector-image/vector-rasterize-thread.h +++ b/dali-toolkit/internal/visuals/animated-vector-image/vector-rasterize-thread.h @@ -49,8 +49,11 @@ public: * @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. @@ -58,13 +61,6 @@ public: 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