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 #ifndef CC_RESOURCE_UPDATE_QUEUE_H_
6 #define CC_RESOURCE_UPDATE_QUEUE_H_
8 #include "base/basictypes.h"
9 #include "cc/cc_export.h"
10 #include "cc/resource_update.h"
11 #include "cc/texture_copier.h"
16 class CC_EXPORT ResourceUpdateQueue
{
18 ResourceUpdateQueue();
19 virtual ~ResourceUpdateQueue();
21 void appendFullUpload(const ResourceUpdate
&);
22 void appendPartialUpload(const ResourceUpdate
&);
23 void appendCopy(TextureCopier::Parameters
);
25 void clearUploadsToEvictedResources();
27 ResourceUpdate
takeFirstFullUpload();
28 ResourceUpdate
takeFirstPartialUpload();
29 TextureCopier::Parameters
takeFirstCopy();
31 size_t fullUploadSize() const { return m_fullEntries
.size(); }
32 size_t partialUploadSize() const { return m_partialEntries
.size(); }
33 size_t copySize() const { return m_copyEntries
.size(); }
35 bool hasMoreUpdates() const;
38 void clearUploadsToEvictedResources(std::deque
<ResourceUpdate
>& entryQueue
);
39 std::deque
<ResourceUpdate
> m_fullEntries
;
40 std::deque
<ResourceUpdate
> m_partialEntries
;
41 std::deque
<TextureCopier::Parameters
> m_copyEntries
;
43 DISALLOW_COPY_AND_ASSIGN(ResourceUpdateQueue
);
48 #endif // CC_RESOURCE_UPDATE_QUEUE_H_