private void SetSplits(IEnumerable <float> splits, float clipDistance = 50f) { var splitsValues = splits.ToArrayIfItIsNot(); if (Splits != null && splitsValues.Length == Splits.Length) { for (var i = 0; i < Splits.Length; i++) { Splits[i].Update(splitsValues[i], clipDistance); } } else { Splits?.DisposeEverything(); Splits = splitsValues.Select(x => new Split(x, clipDistance)).ToArray(); for (var i = 1; i < Splits.Length; i++) { Splits[i].Camera.SmallerCamera = Splits[i - 1].Camera; } } }
public void Dispose() { Splits.DisposeEverything(); DisposeHelper.Dispose(ref _rasterizerState); DisposeHelper.Dispose(ref _depthStencilState); }