Ejemplo n.º 1
0
        private void PreloadModel(string model)
        {
            var hash = model.ToUpperInvariant().GetHashCode();

            lock (mRenderer)
            {
                if (mRenderer.ContainsKey(hash))
                {
                    return;
                }

                var root = IO.Files.Models.ModelFactory.Instance.CreateWmo();

                if (root.Load(model) == false)
                {
                    Log.Warning("Unable to load WMO '" + model + "'. Further instances wont be loaded again");
                }


                var renderer = new WmoRootRender();
                renderer.OnAsyncLoad(root);

                var batch = new WmoBatchRender(renderer);

                lock (mAddLock)
                    mRenderer.Add(hash, batch);
            }
        }
Ejemplo n.º 2
0
        private void UnloadThread()
        {
            while (mIsRunning)
            {
                WmoBatchRender element = null;
                lock (mUnloadItems)
                {
                    if (mUnloadItems.Count > 0)
                    {
                        element = mUnloadItems[0];
                        mUnloadItems.RemoveAt(0);
                    }
                }

                if (element != null)
                {
                    element.Dispose();
                }

                if (element == null)
                {
                    Thread.Sleep(200);
                }
            }
        }
Ejemplo n.º 3
0
        public void SetModel(string model, int variation = 0)
        {
            var root = ModelFactory.Instance.CreateWmo();

            if (root.Load(model) == false)
            {
                return;
            }

            var file = new WmoRootRender();

            file.OnAsyncLoad(root);
            mRender = new WmoBatchRender(file);
            mRender.AddInstance(1, Vector3.Zero, Vector3.Zero);

            mCamera.SetParameters(file.BoundingBox.Maximum, Vector3.Zero, Vector3.UnitZ, Vector3.UnitY);
        }