WebKit Roll 139512:139548
[chromium-blink-merge.git] / cc / resource_update_queue.cc
blob14ecab0897b85344f936f42127ebe1798ca80630
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.
5 #include "cc/resource_update_queue.h"
7 #include "cc/prioritized_resource.h"
9 namespace cc {
11 ResourceUpdateQueue::ResourceUpdateQueue()
15 ResourceUpdateQueue::~ResourceUpdateQueue()
19 void ResourceUpdateQueue::appendFullUpload(const ResourceUpdate& upload)
21 m_fullEntries.push_back(upload);
24 void ResourceUpdateQueue::appendPartialUpload(const ResourceUpdate& upload)
26 m_partialEntries.push_back(upload);
29 void ResourceUpdateQueue::appendCopy(TextureCopier::Parameters copy)
31 m_copyEntries.push_back(copy);
34 void ResourceUpdateQueue::clearUploadsToEvictedResources()
36 clearUploadsToEvictedResources(m_fullEntries);
37 clearUploadsToEvictedResources(m_partialEntries);
40 void ResourceUpdateQueue::clearUploadsToEvictedResources(std::deque<ResourceUpdate>& entryQueue)
42 std::deque<ResourceUpdate> temp;
43 entryQueue.swap(temp);
44 while (temp.size()) {
45 ResourceUpdate upload = temp.front();
46 temp.pop_front();
47 if (!upload.texture->backingResourceWasEvicted())
48 entryQueue.push_back(upload);
52 ResourceUpdate ResourceUpdateQueue::takeFirstFullUpload()
54 ResourceUpdate first = m_fullEntries.front();
55 m_fullEntries.pop_front();
56 return first;
59 ResourceUpdate ResourceUpdateQueue::takeFirstPartialUpload()
61 ResourceUpdate first = m_partialEntries.front();
62 m_partialEntries.pop_front();
63 return first;
66 TextureCopier::Parameters ResourceUpdateQueue::takeFirstCopy()
68 TextureCopier::Parameters first = m_copyEntries.front();
69 m_copyEntries.pop_front();
70 return first;
73 bool ResourceUpdateQueue::hasMoreUpdates() const
75 return m_fullEntries.size() || m_partialEntries.size() || m_copyEntries.size();
78 } // namespace cc