+ mImpl->mRenderer = DecoratedVisualRenderer::New(geometry, shader);
+ mImpl->mRenderer.ReserveCustomProperties(CUSTOM_PROPERTY_COUNT);
+
+ Vector2 dpi = Stage::GetCurrent().GetDpi();
+ float meanDpi = (dpi.height + dpi.width) * 0.5f;
+
+ mLoadingTask = new SvgLoadingTask(mVectorRenderer, mImageUrl, meanDpi, MakeCallback(this, &SvgVisual::ApplyRasterizedImage));
+
+ if(IsSynchronousLoadingRequired() && mImageUrl.IsLocalResource())
+ {
+ mLoadingTask->Process();
+ if(!mLoadingTask->HasSucceeded())
+ {
+ mLoadFailed = true;
+ }
+ mLoadingTask.Reset(); // We don't need it anymore.
+ }
+ else
+ {
+ Dali::AsyncTaskManager::Get().AddTask(mLoadingTask);
+ }