From: Heeyong Song Date: Mon, 29 Apr 2019 09:32:01 +0000 (+0900) Subject: [4.0] Set default size when vector visual is initialized X-Git-Tag: submit/tizen_4.0/20190522.072854~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=74bc98e5d767562bd95abc26fcd794326687fd74;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git [4.0] Set default size when vector visual is initialized - OnSetTransform() is not called before rendering when a vector file is replaced. Change-Id: I493bf87fd63ecfd9e13292e3cfafa03c442aaf54 --- 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 12d70e8..82c809d 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 @@ -57,6 +57,10 @@ enum Flags RESEND_LOOP_COUNT = 1 << 1 }; +#if defined(DEBUG_ENABLED) +Debug::Filter* gVectorAnimationLogFilter = Debug::Filter::New( Debug::NoLogging, false, "LOG_VECTOR_ANIMATION" ); +#endif + } // unnamed namespace AnimatedVectorImageVisualPtr AnimatedVectorImageVisual::New( VisualFactoryCache& factoryCache, ImageVisualShaderFactory& shaderFactory, const VisualUrl& imageUrl, const Property::Map& properties ) @@ -253,6 +257,8 @@ void AnimatedVectorImageVisual::OnSetTransform() if( IsOnStage() ) { + DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "AnimatedVectorImageVisual::OnSetTransform: width = %f, height = %f\n", visualSize.width, visualSize.height ); + if( visualSize != mVisualSize ) { mVisualSize = visualSize; @@ -337,7 +343,7 @@ void AnimatedVectorImageVisual::OnDoAction( const Property::Index actionId, cons { mVectorRasterizeThread.SetCurrentProgress( progress ); - if( mVectorRasterizeThread.GetPlayState() != DevelImageVisual::PlayState::PLAYING ) + if( IsOnStage() && mVectorRasterizeThread.GetPlayState() != DevelImageVisual::PlayState::PLAYING ) { mVectorRasterizeThread.RenderFrame(); Stage::GetCurrent().KeepRendering( 0.0f ); // Trigger rendering @@ -409,14 +415,17 @@ void AnimatedVectorImageVisual::SendAnimationData() mVectorRasterizeThread.SetPlayRange( mPlayRange ); } - if( isPlaying ) - { - mVectorRasterizeThread.PlayAnimation(); - } - else + if( IsOnStage() ) { - mVectorRasterizeThread.RenderFrame(); - Stage::GetCurrent().KeepRendering( 0.0f ); + if( isPlaying ) + { + mVectorRasterizeThread.PlayAnimation(); + } + else + { + mVectorRasterizeThread.RenderFrame(); + Stage::GetCurrent().KeepRendering( 0.0f ); + } } mResendFlag = 0; 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 2794c14..d5515f9 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 @@ -107,6 +107,8 @@ void VectorRasterizeThread::Run() { Rasterize(); } + + DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Run: End of thread\n" ); } void VectorRasterizeThread::SetRenderer( Renderer renderer ) @@ -137,6 +139,7 @@ void VectorRasterizeThread::SetSize( uint32_t width, uint32_t height ) void VectorRasterizeThread::PlayAnimation() { ConditionalWait::ScopedLock lock( mConditionalWait ); + if( mPlayState != DevelImageVisual::PlayState::PLAYING ) { mPlayState = DevelImageVisual::PlayState::PLAYING; @@ -203,6 +206,8 @@ void VectorRasterizeThread::SetLoopCount( int32_t count ) ConditionalWait::ScopedLock lock( mConditionalWait ); mLoopCount = count; + + DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::SetLoopCount: [%d]\n", count ); } } @@ -247,6 +252,8 @@ void VectorRasterizeThread::SetPlayRange( Vector2 range ) mCurrentFrameUpdated = true; mResourceReady = false; } + + DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::SetPlayRange: [%d, %d]\n", mStartFrame, mEndFrame ); } } } @@ -307,6 +314,11 @@ void VectorRasterizeThread::Initialize() mFrameRate = mVectorRenderer.GetFrameRate(); mFrameDurationNanoSeconds = NANOSECONDS_PER_SECOND / mFrameRate; + uint32_t width, height; + mVectorRenderer.GetDefaultSize( width, height ); + + SetSize( width, height ); + DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Initialize: file = %s [%d frames, %f fps]\n", mUrl.c_str(), mTotalFrame, mFrameRate ); } @@ -390,7 +402,7 @@ void VectorRasterizeThread::Rasterize() #if defined(DEBUG_ENABLED) auto sleepDuration = std::chrono::duration_cast< std::chrono::milliseconds >( timeToSleepUntil - std::chrono::system_clock::now() ); - DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Rasterize: [current = %d, sleep duration = %lld]\n", mCurrentFrame, sleepDuration.count() ); + DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Rasterize: [current = %d, sleep duration = %lld]\n", currentFrame, sleepDuration.count() ); #endif std::this_thread::sleep_until( timeToSleepUntil );