mForward( true ),
mUpdateFrameNumber( false ),
mNeedAnimationFinishedTrigger( true ),
- mForceRender( false )
+ mForceRender( false ),
+ mDestroyTask( false )
{
Initialize();
}
}
mVectorRenderer.Finalize();
+
+ mDestroyTask = true;
}
void VectorAnimationTask::SetRenderer( Renderer renderer )
{
ConditionalWait::ScopedLock lock( mConditionalWait );
+ if( mDestroyTask )
+ {
+ // The task will be destroyed. We don't need rasterization.
+ return false;
+ }
+
if( mPlayState == PlayState::PLAYING && mUpdateFrameNumber )
{
mCurrentFrame = mForward ? mCurrentFrame + 1 : mCurrentFrame - 1;