private static void AddLuz(Luz luz, LuzGroup group) { Debug.Assert(luz.Group == LuzGroup.UnAssigned); counts[(int)group] += 1; luz.Group = group; active.Add(luz); Debug.Assert(active.Count <= kMaxLights); }
public Luz Release() { counts[(int)Group] -= 1; active.Remove(this); Group = LuzGroup.UnAssigned; ready.Add(this); return(null); }
public static Luz Acquire(LuzGroup group) { Luz luz = null; if (ready.Count > 0) { int idx = ready.Count - 1; luz = ready[idx]; ready.RemoveAt(idx); AddLuz(luz, group); } return(luz); }
private Luz(LuzGroup group) { this.group = group; }