+ ResourceThreadBase* workerThread;
+
+ // Work out if the resource is in memory, a file, or in a remote server:
+ ResourceThreadBase::RequestType requestType;
+ if( request.GetResource().Get() )
+ {
+ requestType = ResourceThreadBase::RequestDecode;
+ workerThread = localImageThread;
+ }
+ else
+ {
+ const std::string& resourcePath = request.GetPath();
+ if( resourcePath.length() > 7 && strncasecmp( resourcePath.c_str(), "http://", 7 ) == 0 )
+ {
+ requestType = ResourceThreadBase::RequestDownload;
+ workerThread = remoteImageThread;
+ }
+ else
+ {
+ requestType = ResourceThreadBase::RequestLoad;
+ workerThread = localImageThread;
+ }
+ }
+
+ if( resType->imageAttributes.IsDistanceField() )
+ {
+ workerThread = distanceFieldThread;
+ }