if(mAnimationFinishedCallback)
{
mVectorAnimationThread.RemoveEventTriggerCallback(mAnimationFinishedCallback.get());
- mAnimationFinishedCallback.reset();
}
if(mLoadCompletedCallback)
{
mVectorAnimationThread.RemoveEventTriggerCallback(mLoadCompletedCallback.get());
- mLoadCompletedCallback.reset();
}
mVectorRenderer.Finalize();
DALI_LOG_ERROR("VectorAnimationTask::Load: Load failed [%s]\n", mUrl.c_str());
mLoadRequest = false;
mLoadFailed = true;
- if(!synchronousLoading && mLoadCompletedCallback)
+ if(!synchronousLoading)
{
mVectorAnimationThread.AddEventTriggerCallback(mLoadCompletedCallback.get());
}
mFrameDurationMicroSeconds = MICROSECONDS_PER_SECOND / mFrameRate;
mLoadRequest = false;
- if(!synchronousLoading && mLoadCompletedCallback)
+ if(!synchronousLoading)
{
mVectorAnimationThread.AddEventTriggerCallback(mLoadCompletedCallback.get());
}
void VectorAnimationThread::OnEventCallbackTriggered()
{
- while(CallbackBase* callback = GetNextEventCallback())
- {
- CallbackBase::Execute(*callback);
- }
-}
-
-CallbackBase* VectorAnimationThread::GetNextEventCallback()
-{
ConditionalWait::ScopedLock lock(mConditionalWait);
- if(!mTriggerEventCallbacks.empty())
+ for(auto&& iter : mTriggerEventCallbacks)
{
- auto iter = mTriggerEventCallbacks.begin();
- CallbackBase* callback = *iter;
- mTriggerEventCallbacks.erase(iter);
- return callback;
+ CallbackBase::Execute(*iter);
}
+
+ mTriggerEventCallbacks.clear();
mEventTriggered = false;
- return nullptr;
}
VectorAnimationThread::SleepThread::SleepThread(CallbackBase* callback)
private:
/**
- * @brief Rasterizes the tasks.
+ * Rasterizes the tasks.
*/
void Rasterize();
void OnEventCallbackTriggered();
/**
- * @brief Gets next event callback to process.
- */
- CallbackBase* GetNextEventCallback();
-
- /**
* @brief The thread to sleep until the next frame time.
*/
class SleepThread : public Thread