| Index: cc/surfaces/compositor_frame_sink_support.h
|
| diff --git a/cc/surfaces/compositor_frame_sink_support.h b/cc/surfaces/compositor_frame_sink_support.h
|
| index bdafb4933e6c0f752edc1fde38a9d63fd003d6b5..cf17c4e75a7fbc1e7b56c1f0dd3c21eb466d0895 100644
|
| --- a/cc/surfaces/compositor_frame_sink_support.h
|
| +++ b/cc/surfaces/compositor_frame_sink_support.h
|
| @@ -68,6 +68,7 @@ class CC_SURFACES_EXPORT CompositorFrameSinkSupport
|
| void RemoveTopLevelRootReference(const SurfaceId& surface_id);
|
|
|
| void DidReceiveCompositorFrameAck();
|
| + void PendingFrameDiscarded();
|
|
|
| // SurfaceFactoryClient implementation.
|
| void ReferencedSurfacesChanged(
|
| @@ -78,6 +79,7 @@ class CC_SURFACES_EXPORT CompositorFrameSinkSupport
|
| void SetBeginFrameSource(BeginFrameSource* begin_frame_source) override;
|
| void WillDrawSurface(const LocalSurfaceId& local_surface_id,
|
| const gfx::Rect& damage_rect) override;
|
| + void PendingFrameActivated(const LocalSurfaceId& local_surface_id) override;
|
|
|
| // BeginFrameObserver implementation.
|
| void OnBeginFrame(const BeginFrameArgs& args) override;
|
| @@ -85,6 +87,8 @@ class CC_SURFACES_EXPORT CompositorFrameSinkSupport
|
| void OnBeginFrameSourcePausedChanged(bool paused) override;
|
|
|
| void UpdateNeedsBeginFramesInternal();
|
| + void AcknowledgeBeginFrame(const BeginFrameAck& ack);
|
| + void AcknowledgeLastBeginFrameWithoutUpdates();
|
|
|
| CompositorFrameSinkSupportClient* const client_;
|
|
|
| @@ -98,14 +102,28 @@ class CC_SURFACES_EXPORT CompositorFrameSinkSupport
|
| int ack_pending_count_ = 0;
|
| ReturnedResourceArray surface_returned_resources_;
|
|
|
| + // Whether a CompositorFrame is currently pending to be activated.
|
| + bool has_pending_frame_ = false;
|
| +
|
| // The begin frame source being observered. Null if none.
|
| BeginFrameSource* begin_frame_source_ = nullptr;
|
|
|
| // The last begin frame args generated by the begin frame source.
|
| BeginFrameArgs last_begin_frame_args_;
|
|
|
| + // The BeginFrameAck that will be issued when the last submitted
|
| + // CompositorFrame is activated.
|
| + BeginFrameAck begin_frame_ack_for_pending_frame_;
|
| +
|
| + // Whether the last BeginFrame was forwarded to the client.
|
| + bool last_begin_frame_sent_to_client_ = true;
|
| +
|
| + uint32_t latest_confirmed_begin_frame_source_id_ = 0;
|
| + uint64_t latest_confirmed_begin_frame_sequence_number_ =
|
| + BeginFrameArgs::kInvalidFrameNumber;
|
| +
|
| // Whether a request for begin frames has been issued.
|
| - bool needs_begin_frame_ = false;
|
| + bool client_needs_begin_frame_ = false;
|
|
|
| // Whether or not a frame observer has been added.
|
| bool added_frame_observer_ = false;
|
|
|