- RasterizingTaskPtr newTask = new RasterizingTask( this, mParsedImage, width, height );
- mFactoryCache.GetSVGRasterizationThread()->AddTask( newTask );
+ Vector2 dpi = Stage::GetCurrent().GetDpi();
+ float meanDpi = ( dpi.height + dpi.width ) * 0.5f;
+
+ RasterizingTaskPtr newTask = new RasterizingTask( this, mParsedImage, mImageUrl, meanDpi, width, height );
+ if ( IsSynchronousLoadingRequired() )
+ {
+ newTask->Rasterize();
+ ApplyRasterizedImage( newTask->GetParsedImage(), newTask->GetPixelData() );
+ }
+ else
+ {
+ mFactoryCache.GetSVGRasterizationThread()->AddTask( newTask );
+ }