}
}
- void StopRender()
- {
- }
-
bool Render( uint32_t frameNumber )
{
if( frameNumber == 1 && mPreviousFrame != frameNumber )
Internal::Adaptor::GetImplementation( *this ).SetSize( width, height );
}
-void VectorAnimationRenderer::StopRender()
-{
- Internal::Adaptor::GetImplementation( *this ).StopRender();
-}
-
bool VectorAnimationRenderer::Render( uint32_t frameNumber )
{
return Internal::Adaptor::GetImplementation( *this ).Render( frameNumber );
ConditionalWait::ScopedLock lock( mConditionalWait );
mDestroyThread = true;
mConditionalWait.Notify( lock );
-
- // This should be called in the main thread to stop waiting for the dequeuable buffer.
- mVectorRenderer.StopRender();
}
DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::~VectorRasterizeThread: Join [%p]\n", this );
{
ConditionalWait::ScopedLock lock( mConditionalWait );
- if( frameNumber >= mStartFrame && frameNumber <= mEndFrame )
+ if( frameNumber >= mStartFrame && frameNumber <= mEndFrame && mCurrentFrame != frameNumber )
{
mCurrentFrame = frameNumber;
mCurrentFrameUpdated = true;
if( !resourceReady )
{
- DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Rasterize: Resource ready trigger [%p]\n", this );
+ DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Rasterize: Resource ready trigger [current = %d] [%p]\n", currentFrame, this );
mResourceReadyTrigger->Trigger();
}
// Animation is finished
mAnimationFinishedTrigger->Trigger();
- DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Rasterize: Animation is finished [%p]\n", this );
+ DALI_LOG_INFO( gVectorAnimationLogFilter, Debug::Verbose, "VectorRasterizeThread::Rasterize: Animation is finished [current = %d] [%p]\n", currentFrame, this );
}
auto timeToSleepUntil = currentFrameStartTime + std::chrono::nanoseconds( mFrameDurationNanoSeconds );