+void SvgVisual::OnInitialize()
+{
+ Shader shader = GenerateShader();
+ Geometry geometry = mFactoryCache.GetGeometry(VisualFactoryCache::QUAD_GEOMETRY);
+ 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);
+ }
+}
+
+void SvgVisual::DoSetProperties(const Property::Map& propertyMap)