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"
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
);
45 ResourceUpdate upload
= temp
.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();
59 ResourceUpdate
ResourceUpdateQueue::takeFirstPartialUpload()
61 ResourceUpdate first
= m_partialEntries
.front();
62 m_partialEntries
.pop_front();
66 TextureCopier::Parameters
ResourceUpdateQueue::takeFirstCopy()
68 TextureCopier::Parameters first
= m_copyEntries
.front();
69 m_copyEntries
.pop_front();
73 bool ResourceUpdateQueue::hasMoreUpdates() const
75 return m_fullEntries
.size() || m_partialEntries
.size() || m_copyEntries
.size();