private void FirstDelete() { ViewModel.MeshInstance meshInstance = this.first; this.first = this.first.next; this.InstanceDeleteShared(meshInstance); }
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; } } }
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; }
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; }