Exemple #1
0
 private void FirstDelete()
 {
     ViewModel.MeshInstance meshInstance = this.first;
     this.first = this.first.next;
     this.InstanceDeleteShared(meshInstance);
 }
Exemple #2
0
 private void Delete()
 {
     if (!this.disposed)
     {
         this.disposed = true;
         this.predraw.Shutdown();
         this.postdraw.Shutdown();
         if (this.renderer)
         {
             this.renderer.sharedMaterials = this.originalMaterials;
         }
         this.renderer = null;
         if (ViewModel.MeshInstance.dumpCount >= 8)
         {
             this.next = null;
             this.hasNext = false;
         }
         else
         {
             this.next = ViewModel.MeshInstance.dump;
             ViewModel.MeshInstance.dump = this;
             int num = ViewModel.MeshInstance.dumpCount;
             ViewModel.MeshInstance.dumpCount = num + 1;
             this.hasNext = num > 0;
         }
     }
 }
Exemple #3
0
 private bool AddShared(bool didIt, ViewModel.MeshInstance meshInstance)
 {
     if (didIt)
     {
         ViewModel.MeshInstance.Holder holder = this;
         int num = holder.count;
         int num1 = num;
         holder.count = num + 1;
         if (num1 == 0)
         {
             this.first = meshInstance;
         }
     }
     CameraFX cameraFX = CameraFX.mainCameraFX;
     if (cameraFX)
     {
         Material material = cameraFX.predrawMaterial;
         Material material1 = material;
         if (material)
         {
             meshInstance.SetPredrawMaterial(material1);
         }
         Material material2 = cameraFX.postdrawMaterial;
         material1 = material2;
         if (material2)
         {
             meshInstance.SetPostdrawMaterial(material1);
         }
     }
     return didIt;
 }
Exemple #4
0
 private static bool New(ViewModel.MeshInstance ptr, SkinnedMeshRenderer renderer, out ViewModel.MeshInstance newInstance)
 {
     if (!renderer)
     {
         newInstance = null;
         return false;
     }
     if (ViewModel.MeshInstance.dumpCount <= 0)
     {
         newInstance = new ViewModel.MeshInstance();
     }
     else
     {
         newInstance = ViewModel.MeshInstance.dump;
         int num = ViewModel.MeshInstance.dumpCount - 1;
         ViewModel.MeshInstance.dumpCount = num;
         if (num <= 0)
         {
             ViewModel.MeshInstance.dump = null;
         }
         else
         {
             ViewModel.MeshInstance.dump = newInstance.next;
         }
         newInstance.next = null;
         newInstance.hasNext = false;
         newInstance.disposed = false;
         newInstance.renderer = null;
     }
     if (ptr == null)
     {
         newInstance.hasNext = false;
         newInstance.next = null;
     }
     else
     {
         newInstance.hasNext = ptr.hasNext;
         newInstance.next = ptr.next;
         ptr.hasNext = true;
         ptr.next = newInstance;
     }
     newInstance.renderer = renderer;
     newInstance.originalMaterials = renderer.sharedMaterials;
     int num1 = renderer.sharedMesh.subMeshCount;
     if ((int)newInstance.originalMaterials.Length % num1 != 0)
     {
         Array.Resize<Material>(ref newInstance.originalMaterials, ((int)newInstance.originalMaterials.Length / num1 + 1) * num1);
     }
     newInstance.modifiedMaterials = newInstance.originalMaterials;
     return true;
 }