| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CC_RESOURCES_RETURNED_RESOURCE_H_ |
| #define CC_RESOURCES_RETURNED_RESOURCE_H_ |
| |
| #include <vector> |
| |
| #include "cc/base/cc_export.h" |
| #include "cc/base/resource_id.h" |
| #include "gpu/command_buffer/common/sync_token.h" |
| |
| namespace cc { |
| |
| // A ReturnedResource is a struct passed along to a child compositor from a |
| // parent compositor that corresponds to a TransferableResource that was |
| // first passed to the parent compositor. |
| struct CC_EXPORT ReturnedResource { |
| ReturnedResource() : id(0), count(0), lost(false) {} |
| // |id| is an identifier generated by the child compositor that uniquely |
| // identifies a resource. This is the same ID space as TransferableResource. |
| ResourceId id; |
| |
| // A |sync_token| is an identifier for a point in the parent compositor's |
| // command buffer. The child compositor then issues a WaitSyncPointCHROMIUM |
| // command with this |sync_token| as a parameter into its own command buffer. |
| // This ensures that uses of the resource submitted by the parent compositor |
| // are executed before commands submitted by the child. |
| gpu::SyncToken sync_token; |
| |
| // |count| is a reference count for this resource. A resource may be used |
| // by mulitple compositor frames submitted to the parent compositor. |count| |
| // is the number of references being returned back to the child compositor. |
| int count; |
| |
| // If the resource is lost, then the returner cannot give a sync point for it, |
| // and so it has taken ownership of the resource. The receiver cannot do |
| // anything with the resource except delete it. |
| bool lost; |
| }; |
| |
| typedef std::vector<ReturnedResource> ReturnedResourceArray; |
| |
| } // namespace cc |
| |
| #endif // CC_RESOURCES_RETURNED_RESOURCE_H_ |