Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public Luz Release()
        {
            counts[(int)Group] -= 1;
            active.Remove(this);

            Group = LuzGroup.UnAssigned;
            ready.Add(this);

            return(null);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 private Luz(LuzGroup group)
 {
     this.group = group;
 }