if(IsSynchronousLoadingRequired() && mImageUrl.IsLocalResource())
{
mLoadingTask->Process();
- mLoadingTask.Reset(); // We don't need it now
+ if(!mLoadingTask->HasSucceeded())
+ {
+ mLoadFailed = true;
+ }
+ mLoadingTask.Reset(); // We don't need it anymore.
}
else
{
void SvgVisual::DoSetOffScene(Actor& actor)
{
- // Remove loading & rasterizing task
- if(mLoadingTask)
- {
- Dali::AsyncTaskManager::Get().RemoveTask(mLoadingTask);
- mLoadingTask.Reset();
- }
+ // Remove rasterizing task
if(mRasterizingTask)
{
Dali::AsyncTaskManager::Get().RemoveTask(mRasterizingTask);
{
if(mImpl->mRenderer)
{
+ // Remove previous task
+ if(mRasterizingTask)
+ {
+ Dali::AsyncTaskManager::Get().RemoveTask(mRasterizingTask);
+ mRasterizingTask.Reset();
+ }
+
unsigned int width = static_cast<unsigned int>(size.width);
unsigned int height = static_cast<unsigned int>(size.height);
{
mRasterizingTask->Process();
ApplyRasterizedImage(mRasterizingTask);
- mRasterizingTask.Reset(); // We don't need it now
+ mRasterizingTask.Reset(); // We don't need it anymore.
}
else
{
ResourceReady(Toolkit::Visual::ResourceStatus::FAILED);
}
+
+ // We don't need to keep tasks anymore. reset now.
+ if(task == mLoadingTask)
+ {
+ mLoadingTask.Reset();
+ }
+ if(task == mRasterizingTask)
+ {
+ mRasterizingTask.Reset();
+ }
}
void SvgVisual::OnSetTransform()