Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Unified Diff: cc/output/compositor_frame_sink_client.h

Issue 2409923002: cc: Rename SwapBuffers on CompositorFrameSink to SubmitCompositorFrame (Closed)
Patch Set: swap-to-submit: rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/output/compositor_frame_sink_client.h
diff --git a/cc/output/compositor_frame_sink_client.h b/cc/output/compositor_frame_sink_client.h
index 07d428ff24041d65148184a22d6333712d31b786..12f034d8e60a48003e02cd949e1b050811281385 100644
--- a/cc/output/compositor_frame_sink_client.h
+++ b/cc/output/compositor_frame_sink_client.h
@@ -27,40 +27,45 @@ class CC_EXPORT CompositorFrameSinkClient {
public:
// Pass the begin frame source for the client to observe. Client does not own
// the BeginFrameSource. CompositorFrameSink should call this once after
- // binding to
- // the client and then call again with a null while detaching.
+ // binding to the client and then call again with a null while detaching.
virtual void SetBeginFrameSource(BeginFrameSource* source) = 0;
+
+ // Returns resources sent to SubmitCompositorFrame to be reused or freed.
virtual void ReclaimResources(const ReturnedResourceArray& resources) = 0;
- // For WebView.
- virtual void SetExternalTilePriorityConstraints(
- const gfx::Rect& viewport_rect,
- const gfx::Transform& transform) = 0;
+
// If set, |callback| will be called subsequent to each new tree activation,
// regardless of the compositor visibility or damage. |callback| must remain
- // valid for the lifetime of the CompositorFrameSinkClient or until unregisted
- // --
- // use SetTreeActivationCallback(base::Closure()) to unregister it.
+ // valid for the lifetime of the CompositorFrameSinkClient or until
+ // unregisted by giving a null base::Closure.
sunnyps 2016/10/11 18:32:48 nit: unregistered
danakj 2016/10/13 23:50:22 Done.
virtual void SetTreeActivationCallback(const base::Closure& callback) = 0;
- // This allows the output surface to ask its client for a draw.
+
+ // 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.
+ virtual void DidReceiveCompositorFrameAck() = 0;
+
+ // The CompositorFrameSink is lost when the ContextProviders held by it
enne (OOO) 2016/10/11 17:26:00 Thanks for these comments in this file. :)
+ // encounter an error. In this case the CompositorFrameSink (and the
+ // ContextProviders) must be recreated.
+ virtual void DidLoseCompositorFrameSink() = 0;
+
+ // For SynchronousCompositor (WebView) to ask the layer compositor to submit
+ // a new CompositorFrame synchronously.
virtual void OnDraw(const gfx::Transform& transform,
const gfx::Rect& viewport,
bool resourceless_software_draw) = 0;
+
// For SynchronousCompositor (WebView) to set how much memory the compositor
// can use without changing visibility.
virtual void SetMemoryPolicy(const ManagedMemoryPolicy& policy) = 0;
- // ============== BOTH TYPES OF COMPOSITOR ======================
-
- // For LayerTreeHostImpl, this is more of a OnSwapBuffersAck from the display
- // compositor that it received and will use the frame, unblocking it from
- // producing more frames.
- // For the display compositor this is literally a notification that the swap
- // to the hardware is complete.
- virtual void DidSwapBuffersComplete() = 0;
-
- // Needs thought, if LTHI has only context providers, it needs to register a
- // lost callback, so we need to support multiple callbacks.
- virtual void DidLoseCompositorFrameSink() = 0;
+ // For SynchronousCompositor (WebView) to change which tiles should be
+ // included in submitted CompositorFrames independently of what the viewport
+ // is.
+ virtual void SetExternalTilePriorityConstraints(
+ const gfx::Rect& viewport_rect,
+ const gfx::Transform& transform) = 0;
protected:
virtual ~CompositorFrameSinkClient() {}

Powered by Google App Engine
This is Rietveld 408576698