// Copyright 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "cc/resources/resource_update_queue.h" #include "cc/resources/prioritized_resource.h" namespace cc { ResourceUpdateQueue::ResourceUpdateQueue() {} ResourceUpdateQueue::~ResourceUpdateQueue() {} void ResourceUpdateQueue::AppendFullUpload(const ResourceUpdate& upload) { full_entries_.push_back(upload); } void ResourceUpdateQueue::AppendPartialUpload(const ResourceUpdate& upload) { partial_entries_.push_back(upload); } void ResourceUpdateQueue::ClearUploadsToEvictedResources() { ClearUploadsToEvictedResources(&full_entries_); ClearUploadsToEvictedResources(&partial_entries_); } void ResourceUpdateQueue::ClearUploadsToEvictedResources( std::deque* entry_queue) { std::deque temp; entry_queue->swap(temp); while (temp.size()) { ResourceUpdate upload = temp.front(); temp.pop_front(); if (!upload.texture->BackingResourceWasEvicted()) entry_queue->push_back(upload); } } ResourceUpdate ResourceUpdateQueue::TakeFirstFullUpload() { ResourceUpdate first = full_entries_.front(); full_entries_.pop_front(); return first; } ResourceUpdate ResourceUpdateQueue::TakeFirstPartialUpload() { ResourceUpdate first = partial_entries_.front(); partial_entries_.pop_front(); return first; } bool ResourceUpdateQueue::HasMoreUpdates() const { return !full_entries_.empty() || !partial_entries_.empty(); } } // namespace cc