- add sources.
[platform/framework/web/crosswalk.git] / src / cc / resources / resource_update_queue.cc
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
9 namespace cc {
10
11 ResourceUpdateQueue::ResourceUpdateQueue() {}
12
13 ResourceUpdateQueue::~ResourceUpdateQueue() {}
14
15 void ResourceUpdateQueue::AppendFullUpload(const ResourceUpdate& upload) {
16   full_entries_.push_back(upload);
17 }
18
19 void ResourceUpdateQueue::AppendPartialUpload(const ResourceUpdate& upload) {
20   partial_entries_.push_back(upload);
21 }
22
23 void ResourceUpdateQueue::ClearUploadsToEvictedResources() {
24   ClearUploadsToEvictedResources(&full_entries_);
25   ClearUploadsToEvictedResources(&partial_entries_);
26 }
27
28 void 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
40 ResourceUpdate ResourceUpdateQueue::TakeFirstFullUpload() {
41   ResourceUpdate first = full_entries_.front();
42   full_entries_.pop_front();
43   return first;
44 }
45
46 ResourceUpdate ResourceUpdateQueue::TakeFirstPartialUpload() {
47   ResourceUpdate first = partial_entries_.front();
48   partial_entries_.pop_front();
49   return first;
50 }
51
52 bool ResourceUpdateQueue::HasMoreUpdates() const {
53   return !full_entries_.empty() || !partial_entries_.empty();
54 }
55
56 }  // namespace cc