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