mVectorAnimationThread.RemoveEventTriggerCallbacks(mAnimationFinishedCallback.get());
mAnimationFinishedCallback.reset();
}
- if(mForceRenderOnceCallback)
- {
- mVectorAnimationThread.RemoveEventTriggerCallbacks(mForceRenderOnceCallback.get());
- mForceRenderOnceCallback.reset();
- }
if(mLoadCompletedCallback)
{
mVectorAnimationThread.RemoveEventTriggerCallbacks(mLoadCompletedCallback.get());
mAnimationFinishedCallback = std::unique_ptr<CallbackBase>(callback);
}
-void VectorAnimationTask::SetForceRenderOnceCallback(CallbackBase* callback)
-{
- Mutex::ScopedLock lock(mMutex);
- mForceRenderOnceCallback = std::unique_ptr<CallbackBase>(callback);
-}
-
void VectorAnimationTask::SetLoopCount(int32_t count)
{
if(mLoopCount != count)
if(mNotifyAfterRasterization || mNeedForceRenderOnceTrigger)
{
Mutex::ScopedLock lock(mMutex);
- if(mForceRenderOnceCallback)
- {
- mVectorAnimationThread.AddEventTriggerCallback(mForceRenderOnceCallback.get(), mAppliedPlayStateId);
- }
+ mVectorAnimationThread.RequestForceRenderOnce();
mNeedForceRenderOnceTrigger = false;
}