namespace DebuggingEssentials { public class CullGroup { private static FastList cullLists = new FastList(); public CullList cullList; private double startHeight; public static void ResetStatic() { cullLists.Clear(); } public CullGroup(int capacity) { cullList = new CullList(capacity); } public void CalcDraw(bool reset, FastList _cullLists) { if (reset) { startHeight = 0.0; this.cullList.cullItems.Clear(); } cullLists.Clear(); for (int i = 0; i < _cullLists.Count; i++) { CullList cullList = _cullLists.items[i]; if (reset) { cullList.currentCalcCullItem = 0; } if (cullList.currentCalcCullItem < cullList.cullItems.Count) { cullLists.Add(cullList); } } while (cullLists.Count > 0) { int num = int.MaxValue; int num2 = -1; for (int j = 0; j < cullLists.Count; j++) { CullList cullList2 = cullLists.items[j]; int id = cullList2.cullItems.items[cullList2.currentCalcCullItem].id; if (id < num) { num = id; num2 = j; } } if (!cullLists.items[num2].Draw(this.cullList, ref startHeight)) { cullLists.RemoveAt(num2); } } if (reset && this.cullList.cullItems.Count > 0 && this.cullList.cullItems.items[this.cullList.cullItems.Count - 1].isHeader) { this.cullList.cullItems.RemoveLast(); } } } }