示例#1
0
 private void Activate(Animation animation)
 {
     if (animation.QueueNode == null)
     {
         animation.QueueNode = AcquireQueueNode(animation);
         currQueue.Enqueue(animation.Owner.Depth, animation.QueueNode);
     }
 }
示例#2
0
 public override void Update(float delta)
 {
     while (currQueue.Count > 0)
     {
         var animation = currQueue.Dequeue().Value;
         nextQueue.Enqueue(animation.Owner.Depth, animation.QueueNode);
         animation.Advance(delta * animation.OwnerNode.EffectiveAnimationSpeed);
     }
     Toolbox.Swap(ref currQueue, ref nextQueue);
 }
示例#3
0
        public static void Resize(ref BucketQueue <T> queue, int newBucketCount)
        {
            var newQueue = new BucketQueue <T>(newBucketCount);

            while (queue.Count > 0)
            {
                var bucketIndex = queue.Peek().BucketIndex;
                newQueue.Enqueue(bucketIndex, queue.Dequeue());
            }
            queue = newQueue;
        }