| Index: cc/ipc/mojo_compositor_frame_sink.mojom
|
| diff --git a/cc/ipc/mojo_compositor_frame_sink.mojom b/cc/ipc/mojo_compositor_frame_sink.mojom
|
| index 7731adccfe2e6a92bd3b00d0578f10a543e9586f..f75ded36f8a57d4d312df7bc5333c9865520957a 100644
|
| --- a/cc/ipc/mojo_compositor_frame_sink.mojom
|
| +++ b/cc/ipc/mojo_compositor_frame_sink.mojom
|
| @@ -13,19 +13,31 @@ import "cc/ipc/returned_resource.mojom";
|
| // is responsible for creating a CompositorFrame to update its portion of the
|
| // screen.
|
| interface MojoCompositorFrameSink {
|
| - // After the submitted frame is either drawn for the first time by the display
|
| - // compositor or discarded, the callback will be called. Clients should use
|
| - // this acknowledgement to ratelimit frame submissions.
|
| - // TODO(fsamuel): We should support identifying the CF in the callback.
|
| - SubmitCompositorFrame(cc.mojom.CompositorFrame frame) => ();
|
| -
|
| // Lets the display compositor know that the client wishes to receive the next
|
| // BeginFrame event.
|
| SetNeedsBeginFrame(bool needs_begin_frame);
|
|
|
| + // Submits a CompositorFrame to the display compositor that will be presented
|
| + // to screen the next time frames from all CompositorFrameSinks are aggregated
|
| + // to produce a display CompositorFrame.
|
| + // For successful swaps, the implementation must call
|
| + // DidReceiveCompositorFrameAck() asynchronously when the frame has been
|
| + // processed in order to unthrottle the next frame.
|
| + SubmitCompositorFrame(cc.mojom.CompositorFrame frame);
|
| +
|
| // TODO(fsamuel): ReadbackBitmap API would be useful here.
|
| };
|
|
|
| interface MojoCompositorFrameSinkClient {
|
| - ReturnResources(ReturnedResourceArray resources);
|
| + // Notification that the previous CompositorFrame given to
|
| + // SubmitCompositorFrame() has been processed and that another frame
|
| + // can be submitted. This provides backpressure from the display compositor
|
| + // so that frames are submitted only at the rate it can handle them.
|
| + // TODO(fsamuel): This method ought not be necessary with unified BeginFrame.
|
| + // However, there's a fair amount of cleanup and refactoring necessary to get
|
| + // rid of it.
|
| + DidReceiveCompositorFrameAck();
|
| +
|
| + // Returns resources sent to SubmitCompositorFrame to be reused or freed.
|
| + ReclaimResources(ReturnedResourceArray resources);
|
| };
|
|
|