예제 #1
0
        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);
                }
            });
        }
예제 #2
0
        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);
                    }
                });
            }
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
        }
예제 #6
0
 public static GeometryParts Load(string modelName, params string[] texDictNames)
 {
     return(Load(modelName, texDictNames.Select(x => TextureDictionary.Load(x)).ToArray()));
 }