OLD | NEW |
---|---|
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/resources/resource_update_queue.h" | 5 #include "cc/resources/resource_update_queue.h" |
6 | 6 |
7 #include "cc/resources/prioritized_resource.h" | 7 #include "cc/resources/prioritized_resource.h" |
8 | 8 |
9 namespace cc { | 9 namespace cc { |
10 | 10 |
11 ResourceUpdateQueue::ResourceUpdateQueue() | 11 ResourceUpdateQueue::ResourceUpdateQueue() {} |
12 { | 12 |
13 ResourceUpdateQueue::~ResourceUpdateQueue() {} | |
14 | |
15 void ResourceUpdateQueue::AppendFullUpload(const ResourceUpdate& upload) { | |
16 full_entries_.push_back(upload); | |
13 } | 17 } |
14 | 18 |
15 ResourceUpdateQueue::~ResourceUpdateQueue() | 19 void ResourceUpdateQueue::AppendPartialUpload(const ResourceUpdate& upload) { |
16 { | 20 partial_entries_.push_back(upload); |
17 } | 21 } |
18 | 22 |
19 void ResourceUpdateQueue::appendFullUpload(const ResourceUpdate& upload) | 23 void ResourceUpdateQueue::AppendCopy(TextureCopier::Parameters copy) { |
20 { | 24 copy_entries_.push_back(copy); |
21 m_fullEntries.push_back(upload); | |
22 } | 25 } |
23 | 26 |
24 void ResourceUpdateQueue::appendPartialUpload(const ResourceUpdate& upload) | 27 void ResourceUpdateQueue::ClearUploadsToEvictedResources() { |
25 { | 28 ClearUploadsToEvictedResources(&full_entries_); |
26 m_partialEntries.push_back(upload); | 29 ClearUploadsToEvictedResources(&partial_entries_); |
27 } | 30 } |
28 | 31 |
29 void ResourceUpdateQueue::appendCopy(TextureCopier::Parameters copy) | 32 void ResourceUpdateQueue::ClearUploadsToEvictedResources( |
30 { | 33 std::deque<ResourceUpdate>* entry_queue) { |
31 m_copyEntries.push_back(copy); | 34 std::deque<ResourceUpdate> temp; |
35 entry_queue->swap(temp); | |
36 while (temp.size()) { | |
37 ResourceUpdate upload = temp.front(); | |
38 temp.pop_front(); | |
39 if (!upload.texture->BackingResourceWasEvicted()) | |
40 entry_queue->push_back(upload); | |
41 } | |
32 } | 42 } |
33 | 43 |
34 void ResourceUpdateQueue::clearUploadsToEvictedResources() | 44 ResourceUpdate ResourceUpdateQueue::TakeFirstFullUpload() { |
35 { | 45 ResourceUpdate first = full_entries_.front(); |
36 clearUploadsToEvictedResources(m_fullEntries); | 46 full_entries_.pop_front(); |
37 clearUploadsToEvictedResources(m_partialEntries); | 47 return first; |
38 } | 48 } |
39 | 49 |
40 void ResourceUpdateQueue::clearUploadsToEvictedResources(std::deque<ResourceUpda te>& entryQueue) | 50 ResourceUpdate ResourceUpdateQueue::TakeFirstPartialUpload() { |
41 { | 51 ResourceUpdate first = partial_entries_.front(); |
42 std::deque<ResourceUpdate> temp; | 52 partial_entries_.pop_front(); |
43 entryQueue.swap(temp); | 53 return first; |
44 while (temp.size()) { | |
45 ResourceUpdate upload = temp.front(); | |
46 temp.pop_front(); | |
47 if (!upload.texture->BackingResourceWasEvicted()) | |
48 entryQueue.push_back(upload); | |
49 } | |
50 } | 54 } |
51 | 55 |
52 ResourceUpdate ResourceUpdateQueue::takeFirstFullUpload() | 56 TextureCopier::Parameters ResourceUpdateQueue::TakeFirstCopy() { |
53 { | 57 TextureCopier::Parameters first = copy_entries_.front(); |
54 ResourceUpdate first = m_fullEntries.front(); | 58 copy_entries_.pop_front(); |
55 m_fullEntries.pop_front(); | 59 return first; |
56 return first; | |
57 } | 60 } |
58 | 61 |
59 ResourceUpdate ResourceUpdateQueue::takeFirstPartialUpload() | 62 bool ResourceUpdateQueue::HasMoreUpdates() const { |
60 { | 63 return full_entries_.size() || partial_entries_.size() || |
61 ResourceUpdate first = m_partialEntries.front(); | 64 copy_entries_.size(); |
jamesr
2013/03/20 19:59:30
.empty() would be slightly better, I think
| |
62 m_partialEntries.pop_front(); | |
63 return first; | |
64 } | |
65 | |
66 TextureCopier::Parameters ResourceUpdateQueue::takeFirstCopy() | |
67 { | |
68 TextureCopier::Parameters first = m_copyEntries.front(); | |
69 m_copyEntries.pop_front(); | |
70 return first; | |
71 } | |
72 | |
73 bool ResourceUpdateQueue::hasMoreUpdates() const | |
74 { | |
75 return m_fullEntries.size() || m_partialEntries.size() || m_copyEntries.size (); | |
76 } | 65 } |
77 | 66 |
78 } // namespace cc | 67 } // namespace cc |
OLD | NEW |