- DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Initialize: file = %s [%d frames, %f fps]\n", mUrl.c_str(), mTotalFrame, mFrameRate );
-}
-
-void VectorRasterizeThread::Rasterize()
-{
- bool resourceReady;
- uint32_t currentFrame, startFrame, endFrame;
- int32_t loopCount;
- DevelImageVisual::PlayState playState;
-
- {
- ConditionalWait::ScopedLock lock( mConditionalWait );
-
- if( mPlayState != DevelImageVisual::PlayState::PLAYING && !mNeedRender && !mDestroyThread )
- {
- DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Rasterize: Wait\n" );
-
- if( mPlayState == DevelImageVisual::PlayState::STOPPED )
- {
- // Reset the current loop
- mCurrentLoop = 0;
- }
- mConditionalWait.Wait( lock );
- }
-
- resourceReady = mResourceReady;
- currentFrame = mCurrentFrame++;
- startFrame = mStartFrame;
- endFrame = mEndFrame;
- loopCount = mLoopCount;
- playState = mPlayState;
-
- mNeedRender = false;
- mResourceReady = true;
- mCurrentFrameUpdated = false;
- }
-
- auto currentFrameStartTime = std::chrono::system_clock::now();
-
- // Rasterize
- mVectorRenderer.Render( currentFrame );
-
- if( playState == DevelImageVisual::PlayState::PLAYING )
- {
- if( currentFrame >= endFrame )