- OnSetTransform() is not called before rendering
when a vector file is replaced.
Change-Id: I493bf87fd63ecfd9e13292e3cfafa03c442aaf54
RESEND_LOOP_COUNT = 1 << 1
};
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 )
} // unnamed namespace
AnimatedVectorImageVisualPtr AnimatedVectorImageVisual::New( VisualFactoryCache& factoryCache, ImageVisualShaderFactory& shaderFactory, const VisualUrl& imageUrl, const Property::Map& properties )
+ DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "AnimatedVectorImageVisual::OnSetTransform: width = %f, height = %f\n", visualSize.width, visualSize.height );
+
if( visualSize != mVisualSize )
{
mVisualSize = visualSize;
if( visualSize != mVisualSize )
{
mVisualSize = visualSize;
{
mVectorRasterizeThread.SetCurrentProgress( progress );
{
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
{
mVectorRasterizeThread.RenderFrame();
Stage::GetCurrent().KeepRendering( 0.0f ); // Trigger rendering
mVectorRasterizeThread.SetPlayRange( mPlayRange );
}
mVectorRasterizeThread.SetPlayRange( mPlayRange );
}
- if( isPlaying )
- {
- mVectorRasterizeThread.PlayAnimation();
- }
- else
- mVectorRasterizeThread.RenderFrame();
- Stage::GetCurrent().KeepRendering( 0.0f );
+ if( isPlaying )
+ {
+ mVectorRasterizeThread.PlayAnimation();
+ }
+ else
+ {
+ mVectorRasterizeThread.RenderFrame();
+ Stage::GetCurrent().KeepRendering( 0.0f );
+ }
+
+ DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Run: End of thread\n" );
}
void VectorRasterizeThread::SetRenderer( Renderer renderer )
}
void VectorRasterizeThread::SetRenderer( Renderer renderer )
void VectorRasterizeThread::PlayAnimation()
{
ConditionalWait::ScopedLock lock( mConditionalWait );
void VectorRasterizeThread::PlayAnimation()
{
ConditionalWait::ScopedLock lock( mConditionalWait );
if( mPlayState != DevelImageVisual::PlayState::PLAYING )
{
mPlayState = DevelImageVisual::PlayState::PLAYING;
if( mPlayState != DevelImageVisual::PlayState::PLAYING )
{
mPlayState = DevelImageVisual::PlayState::PLAYING;
ConditionalWait::ScopedLock lock( mConditionalWait );
mLoopCount = count;
ConditionalWait::ScopedLock lock( mConditionalWait );
mLoopCount = count;
+
+ DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::SetLoopCount: [%d]\n", count );
mCurrentFrameUpdated = true;
mResourceReady = false;
}
mCurrentFrameUpdated = true;
mResourceReady = false;
}
+
+ DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::SetPlayRange: [%d, %d]\n", mStartFrame, mEndFrame );
mFrameRate = mVectorRenderer.GetFrameRate();
mFrameDurationNanoSeconds = NANOSECONDS_PER_SECOND / mFrameRate;
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 );
}
DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Initialize: file = %s [%d frames, %f fps]\n", mUrl.c_str(), mTotalFrame, mFrameRate );
}
#if defined(DEBUG_ENABLED)
auto sleepDuration = std::chrono::duration_cast< std::chrono::milliseconds >( timeToSleepUntil - std::chrono::system_clock::now() );
#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 );
#endif
std::this_thread::sleep_until( timeToSleepUntil );