1// Copyright 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "cc/resources/resource_update_queue.h" 6 7#include "cc/resources/prioritized_resource.h" 8 9namespace cc { 10 11ResourceUpdateQueue::ResourceUpdateQueue() {} 12 13ResourceUpdateQueue::~ResourceUpdateQueue() {} 14 15void ResourceUpdateQueue::AppendFullUpload(const ResourceUpdate& upload) { 16 full_entries_.push_back(upload); 17} 18 19void ResourceUpdateQueue::AppendPartialUpload(const ResourceUpdate& upload) { 20 partial_entries_.push_back(upload); 21} 22 23void ResourceUpdateQueue::ClearUploadsToEvictedResources() { 24 ClearUploadsToEvictedResources(&full_entries_); 25 ClearUploadsToEvictedResources(&partial_entries_); 26} 27 28void ResourceUpdateQueue::ClearUploadsToEvictedResources( 29 std::deque<ResourceUpdate>* entry_queue) { 30 std::deque<ResourceUpdate> temp; 31 entry_queue->swap(temp); 32 while (temp.size()) { 33 ResourceUpdate upload = temp.front(); 34 temp.pop_front(); 35 if (!upload.texture->BackingResourceWasEvicted()) 36 entry_queue->push_back(upload); 37 } 38} 39 40ResourceUpdate ResourceUpdateQueue::TakeFirstFullUpload() { 41 ResourceUpdate first = full_entries_.front(); 42 full_entries_.pop_front(); 43 return first; 44} 45 46ResourceUpdate ResourceUpdateQueue::TakeFirstPartialUpload() { 47 ResourceUpdate first = partial_entries_.front(); 48 partial_entries_.pop_front(); 49 return first; 50} 51 52bool ResourceUpdateQueue::HasMoreUpdates() const { 53 return !full_entries_.empty() || !partial_entries_.empty(); 54} 55 56} // namespace cc 57