Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Side by Side Diff: cc/resources/returned_resource.h

Issue 2689563005: Surfaces: Receive resources only once (Closed)
Patch Set: Added a unit test Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | cc/surfaces/compositor_frame_sink_support_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef CC_RESOURCES_RETURNED_RESOURCE_H_ 5 #ifndef CC_RESOURCES_RETURNED_RESOURCE_H_
6 #define CC_RESOURCES_RETURNED_RESOURCE_H_ 6 #define CC_RESOURCES_RETURNED_RESOURCE_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "cc/base/cc_export.h" 10 #include "cc/base/cc_export.h"
11 #include "cc/base/resource_id.h" 11 #include "cc/base/resource_id.h"
12 #include "gpu/command_buffer/common/sync_token.h" 12 #include "gpu/command_buffer/common/sync_token.h"
13 13
14 namespace cc { 14 namespace cc {
15 15
16 // A ReturnedResource is a struct passed along to a child compositor from a 16 // A ReturnedResource is a struct passed along to a child compositor from a
17 // parent compositor that corresponds to a TransferableResource that was 17 // parent compositor that corresponds to a TransferableResource that was
18 // first passed to the parent compositor. 18 // first passed to the parent compositor.
19 struct CC_EXPORT ReturnedResource { 19 struct CC_EXPORT ReturnedResource {
20 ReturnedResource() : id(0), count(0), lost(false) {} 20 ReturnedResource() : id(0), count(0), lost(false) {}
21
22 bool operator==(const ReturnedResource& other) const {
23 return id == other.id && sync_token == other.sync_token &&
24 count == other.count && lost == other.lost;
25 }
26
27 bool operator!=(const ReturnedResource& other) const {
28 return !(*this == other);
29 }
30
21 // |id| is an identifier generated by the child compositor that uniquely 31 // |id| is an identifier generated by the child compositor that uniquely
22 // identifies a resource. This is the same ID space as TransferableResource. 32 // identifies a resource. This is the same ID space as TransferableResource.
23 ResourceId id; 33 ResourceId id;
24 34
25 // A |sync_token| is an identifier for a point in the parent compositor's 35 // A |sync_token| is an identifier for a point in the parent compositor's
26 // command buffer. The child compositor then issues a WaitSyncPointCHROMIUM 36 // command buffer. The child compositor then issues a WaitSyncPointCHROMIUM
27 // command with this |sync_token| as a parameter into its own command buffer. 37 // command with this |sync_token| as a parameter into its own command buffer.
28 // This ensures that uses of the resource submitted by the parent compositor 38 // This ensures that uses of the resource submitted by the parent compositor
29 // are executed before commands submitted by the child. 39 // are executed before commands submitted by the child.
30 gpu::SyncToken sync_token; 40 gpu::SyncToken sync_token;
31 41
32 // |count| is a reference count for this resource. A resource may be used 42 // |count| is a reference count for this resource. A resource may be used
33 // by mulitple compositor frames submitted to the parent compositor. |count| 43 // by mulitple compositor frames submitted to the parent compositor. |count|
34 // is the number of references being returned back to the child compositor. 44 // is the number of references being returned back to the child compositor.
35 int count; 45 int count;
36 46
37 // If the resource is lost, then the returner cannot give a sync point for it, 47 // If the resource is lost, then the returner cannot give a sync point for it,
38 // and so it has taken ownership of the resource. The receiver cannot do 48 // and so it has taken ownership of the resource. The receiver cannot do
39 // anything with the resource except delete it. 49 // anything with the resource except delete it.
40 bool lost; 50 bool lost;
41 }; 51 };
42 52
43 typedef std::vector<ReturnedResource> ReturnedResourceArray; 53 typedef std::vector<ReturnedResource> ReturnedResourceArray;
44 54
45 } // namespace cc 55 } // namespace cc
46 56
47 #endif // CC_RESOURCES_RETURNED_RESOURCE_H_ 57 #endif // CC_RESOURCES_RETURNED_RESOURCE_H_
OLDNEW
« no previous file with comments | « no previous file | cc/surfaces/compositor_frame_sink_support_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698