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
3 // found in the LICENSE file.
5 #ifndef CC_RESOURCES_RETURNED_RESOURCE_H_
6 #define CC_RESOURCES_RETURNED_RESOURCE_H_
10 #include "base/basictypes.h"
11 #include "cc/base/cc_export.h"
12 #include "cc/base/resource_id.h"
16 // A ReturnedResource is a struct passed along to a child compositor from a
17 // parent compositor that corresponds to a TransferableResource that was
18 // first passed to the parent compositor.
19 struct CC_EXPORT ReturnedResource
{
20 ReturnedResource() : id(0), sync_point(0), count(0), lost(false) {}
21 // |id| is an identifier generated by the child compositor that uniquely
22 // identifies a resource. This is the same ID space as TransferableResource.
25 // A |sync_point| is an identifier for a point in the parent compositor's
26 // command buffer. The child compositor then issues a WaitSyncPointCHROMIUM
27 // command with this |sync_point| as a parameter into its own command buffer.
28 // This ensures that uses of the resource submitted by the parent compositor
29 // are executed before commands submitted by the child.
32 // |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 // is the number of references being returned back to the child compositor.
37 // 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 // anything with the resource except delete it.
43 typedef std::vector
<ReturnedResource
> ReturnedResourceArray
;
47 #endif // CC_RESOURCES_RETURNED_RESOURCE_H_