Index: components/exo/buffer.h |
diff --git a/components/exo/buffer.h b/components/exo/buffer.h |
index e7b5b605c45e423e78ce5ce91cf92ee346110338..eeaf1c3e124057c6749d9f60a51b2171d88b3361 100644 |
--- a/components/exo/buffer.h |
+++ b/components/exo/buffer.h |
@@ -10,6 +10,7 @@ |
#include "base/callback.h" |
#include "base/macros.h" |
#include "base/memory/weak_ptr.h" |
+#include "cc/resources/transferable_resource.h" |
#include "ui/gfx/geometry/size.h" |
namespace base { |
@@ -18,17 +19,14 @@ class TracedValue; |
} |
} |
-namespace cc { |
-class SingleReleaseCallback; |
-class TextureMailbox; |
-} |
- |
namespace gfx { |
class GpuMemoryBuffer; |
} |
namespace exo { |
+class CompositorFrameSinkHolder; |
+ |
// This class provides the content for a Surface. The mechanism by which a |
// client provides and updates the contents is the responsibility of the client |
// and not defined as part of this class. |
@@ -53,10 +51,12 @@ class Buffer : public base::SupportsWeakPtr<Buffer> { |
// buffer. Returns a release callback on success. The release callback should |
// be called before a new texture mailbox can be acquired unless |
// |non_client_usage| is true. |
- std::unique_ptr<cc::SingleReleaseCallback> ProduceTextureMailbox( |
- cc::TextureMailbox* mailbox, |
+ bool ProduceTransferableResource( |
+ CompositorFrameSinkHolder* compositor_frame_sink_holder, |
+ cc::ResourceId resource_id, |
bool secure_output_only, |
- bool client_usage); |
+ bool client_usage, |
+ cc::TransferableResource* resource); |
// This should be called when the buffer is attached to a Surface. |
void OnAttach(); |
@@ -123,6 +123,12 @@ class Buffer : public base::SupportsWeakPtr<Buffer> { |
// The client release callback. |
base::Closure release_callback_; |
+ // The CompositorFrameSinkHolder that has the ReleaseCallback of this buffer |
+ // produced in ProduceTextureMailbox(). |
+ // Buffer holds a reference to the CompositorFrameSinkHolder to keep it alive. |
+ // The refptr is reset when the release callback is called. |
reveman
2017/01/03 23:48:34
nit: ..reset after the release callback has been c
|
+ scoped_refptr<CompositorFrameSinkHolder> compositor_frame_sink_holder_; |
+ |
DISALLOW_COPY_AND_ASSIGN(Buffer); |
}; |