| 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 "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_ |
| OLD | NEW |