+ task->Load();
+ task->Rasterize();
+ AddCompletedTask(task);
+ }
+}
+
+void SvgRasterizeThread::ApplyRasterizedSVGToSampler()
+{
+ while(RasterizingTaskPtr task = NextCompletedTask())
+ {
+ task->GetSvgVisual()->ApplyRasterizedImage(task->GetPixelData(), task->IsLoaded());
+ }
+
+ UnregisterProcessor();
+}
+
+void SvgRasterizeThread::Process(bool postProcessor)
+{
+ ApplyRasterizedSVGToSampler();
+}
+
+void SvgRasterizeThread::UnregisterProcessor()
+{
+ if(mProcessorRegistered)
+ {
+ if(mRasterizeTasks.empty() && mCompletedTasks.empty())
+ {
+ Adaptor::Get().UnregisterProcessor(*this);
+ mProcessorRegistered = false;
+ }