Example #1
0
 public void GetTexture(string url, Action <Texture> callback, string alias = null)
 {
     VerifyUrl(url);
     if (!url.IsEmpty())
     {
         Texture t = assetCache.Get(url) as Texture;
         if (t != null)
         {
             callback(t);
         }
         else
         {
             if (url.Is(FileType.Asset))
             {
                 GetAsset <Texture>(alias, url, callback, false);
             }
             else
             {
                 callbacks.Add(url, callback);
                 if (callbacks.GetCount(url) == 1)
                 {
                     log.Debug("Loading {0}", url);
                     loader.GetTexture(pathConverter(url), tex =>
                     {
                         if (tex != null)
                         {
                             AddToCache(alias, url, tex);
                         }
                         List <Delegate> slot = callbacks.GetSlot(url);
                         foreach (Delegate c in slot)
                         {
                             ((Action <Texture>)c)(tex);
                         }
                         callbacks.Remove(url);
                     });
                 }
             }
         }
     }
     else
     {
         callback(null);
     }
 }