OLD | NEW |
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 "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "cc/base/cc_export.h" | 11 #include "cc/base/cc_export.h" |
12 #include "cc/base/resource_id.h" | 12 #include "cc/base/resource_id.h" |
| 13 #include "gpu/command_buffer/common/sync_token.h" |
13 | 14 |
14 namespace cc { | 15 namespace cc { |
15 | 16 |
16 // A ReturnedResource is a struct passed along to a child compositor from a | 17 // A ReturnedResource is a struct passed along to a child compositor from a |
17 // parent compositor that corresponds to a TransferableResource that was | 18 // parent compositor that corresponds to a TransferableResource that was |
18 // first passed to the parent compositor. | 19 // first passed to the parent compositor. |
19 struct CC_EXPORT ReturnedResource { | 20 struct CC_EXPORT ReturnedResource { |
20 ReturnedResource() : id(0), sync_point(0), count(0), lost(false) {} | 21 ReturnedResource() : id(0), count(0), lost(false) {} |
21 // |id| is an identifier generated by the child compositor that uniquely | 22 // |id| is an identifier generated by the child compositor that uniquely |
22 // identifies a resource. This is the same ID space as TransferableResource. | 23 // identifies a resource. This is the same ID space as TransferableResource. |
23 ResourceId id; | 24 ResourceId id; |
24 | 25 |
25 // A |sync_point| is an identifier for a point in the parent compositor's | 26 // A |sync_token| is an identifier for a point in the parent compositor's |
26 // command buffer. The child compositor then issues a WaitSyncPointCHROMIUM | 27 // command buffer. The child compositor then issues a WaitSyncPointCHROMIUM |
27 // command with this |sync_point| as a parameter into its own command buffer. | 28 // 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 | 29 // This ensures that uses of the resource submitted by the parent compositor |
29 // are executed before commands submitted by the child. | 30 // are executed before commands submitted by the child. |
30 unsigned sync_point; | 31 gpu::SyncToken sync_token; |
31 | 32 |
32 // |count| is a reference count for this resource. A resource may be used | 33 // |count| is a reference count for this resource. A resource may be used |
33 // by mulitple compositor frames submitted to the parent compositor. |count| | 34 // by mulitple compositor frames submitted to the parent compositor. |count| |
34 // is the number of references being returned back to the child compositor. | 35 // is the number of references being returned back to the child compositor. |
35 int count; | 36 int count; |
36 | 37 |
37 // If the resource is lost, then the returner cannot give a sync point for it, | 38 // 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 | 39 // and so it has taken ownership of the resource. The receiver cannot do |
39 // anything with the resource except delete it. | 40 // anything with the resource except delete it. |
40 bool lost; | 41 bool lost; |
41 }; | 42 }; |
42 | 43 |
43 typedef std::vector<ReturnedResource> ReturnedResourceArray; | 44 typedef std::vector<ReturnedResource> ReturnedResourceArray; |
44 | 45 |
45 } // namespace cc | 46 } // namespace cc |
46 | 47 |
47 #endif // CC_RESOURCES_RETURNED_RESOURCE_H_ | 48 #endif // CC_RESOURCES_RETURNED_RESOURCE_H_ |
OLD | NEW |