public static void LoadAsync(string name, System.Action <TextureDictionary> onFinish) { name = name.ToLower(); if (!s_asyncLoader.TryLoadObject(name, onFinish)) { return; } // read archive file asyncly TextureDictionary loadedTxd = null; Behaviours.LoadingThread.RegisterJob(new Behaviours.LoadingThread.Job <RenderWareStream.TextureDictionary> () { action = () => { return(ArchiveManager.ReadFile <RenderWareStream.TextureDictionary>(name + ".txd")); }, callbackSuccess = (RenderWareStream.TextureDictionary td) => { UnityEngine.Profiling.Profiler.BeginSample("TextureDictionary()"); loadedTxd = new TextureDictionary(td); UnityEngine.Profiling.Profiler.EndSample(); }, callbackFinish = (result) => { s_asyncLoader.OnObjectFinishedLoading(name, loadedTxd, loadedTxd != null); } }); }
public static void LoadAsync(string modelName, string[] texDictNames, System.Action <GeometryParts> onFinish) { // load each texture asyncly (or load them all at once ?) // copy array to local variable texDictNames = texDictNames.ToArray(); if (0 == texDictNames.Length) { LoadAsync(modelName, new TextureDictionary[0], onFinish); return; } var loadedTextDicts = new List <TextureDictionary> (); for (int i = 0; i < texDictNames.Length; i++) { // bool isLast = i == texDictNames.Length - 1; TextureDictionary.LoadAsync(texDictNames [i], (texDict) => { loadedTextDicts.Add(texDict); if (loadedTextDicts.Count == texDictNames.Length) { // finished loading all tex dicts LoadAsync(modelName, loadedTextDicts.ToArray(), onFinish); } }); } }
public static TextureDictionary Load(string name) { name = name.ToLower(); if (_sLoaded.ContainsKey(name)) { return(_sLoaded[name]); } var txd = new TextureDictionary(ArchiveManager.ReadFile <RenderWareStream.TextureDictionary>(name + ".txd")); _sLoaded.Add(name, txd); return(txd); }
public static TextureDictionary Load(string name) { name = name.ToLower(); if (s_asyncLoader.IsObjectLoaded(name)) { return(s_asyncLoader.GetLoadedObject(name)); } UnityEngine.Profiling.Profiler.BeginSample("TextureDictionary.Load"); var txd = new TextureDictionary(ArchiveManager.ReadFile <RenderWareStream.TextureDictionary>(name + ".txd")); s_asyncLoader.AddToLoadedObjects(name, txd); UnityEngine.Profiling.Profiler.EndSample(); return(txd); }
public static TextureDictionary Load(string name) { name = name.ToLower(); if (_sLoaded.ContainsKey(name)) { return(_sLoaded[name]); } UnityEngine.Profiling.Profiler.BeginSample("TextureDictionary.Load"); var txd = new TextureDictionary(ArchiveManager.ReadFile <RenderWareStream.TextureDictionary>(name + ".txd")); _sLoaded.Add(name, txd); UnityEngine.Profiling.Profiler.EndSample(); return(txd); }
public static GeometryParts Load(string modelName, params string[] texDictNames) { return(Load(modelName, texDictNames.Select(x => TextureDictionary.Load(x)).ToArray())); }