| Index: components/exo/buffer.h
|
| diff --git a/components/exo/buffer.h b/components/exo/buffer.h
|
| index e7b5b605c45e423e78ce5ce91cf92ee346110338..8e8737097e501e3be8b7bae5697a80c65879d959 100644
|
| --- a/components/exo/buffer.h
|
| +++ b/components/exo/buffer.h
|
| @@ -29,6 +29,8 @@ 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.
|
| @@ -56,7 +58,8 @@ class Buffer : public base::SupportsWeakPtr<Buffer> {
|
| std::unique_ptr<cc::SingleReleaseCallback> ProduceTextureMailbox(
|
| cc::TextureMailbox* mailbox,
|
| bool secure_output_only,
|
| - bool client_usage);
|
| + bool client_usage,
|
| + CompositorFrameSinkHolder* compositor_frame_sink_holder);
|
|
|
| // This should be called when the buffer is attached to a Surface.
|
| void OnAttach();
|
| @@ -80,10 +83,24 @@ class Buffer : public base::SupportsWeakPtr<Buffer> {
|
| // Runs the release callback if the buffer isn't attached or in use.
|
| void CheckReleaseCallback();
|
|
|
| + // This is a wrapper function for ReleaseTexture. It holds onto a ref to
|
| + // CompositorFrameSinkHolder to keep it alive and calls
|
| + // ReleaseTexture(texture).
|
| + void ReleaseTextureAndCompositorFrameSinkHolder(
|
| + std::unique_ptr<Texture> texture,
|
| + CompositorFrameSinkHolder* compositor_frame_sink_holder);
|
| +
|
| // This is used by ProduceTextureMailbox() to produce a release callback
|
| // that releases a texture so it can be destroyed or reused.
|
| void ReleaseTexture(std::unique_ptr<Texture> texture);
|
|
|
| + // This is a wrapper function for ReleaseContentsTexture. It holds onto a ref
|
| + // to CompositorFrameSinkHolder to keep it alive and calls
|
| + // ReleaseTexture(texture).
|
| + void ReleaseContentsTextureAndCompositorFrameSinkHolder(
|
| + std::unique_ptr<Texture> texture,
|
| + CompositorFrameSinkHolder* compositor_frame_sink_holder);
|
| +
|
| // This is used by ProduceTextureMailbox() to produce a release callback
|
| // that releases the buffer contents referenced by a texture before the
|
| // texture is destroyed or reused.
|
|
|