Index: cc/trees/thread_proxy.h |
diff --git a/cc/trees/thread_proxy.h b/cc/trees/thread_proxy.h |
index 544ef87d6591d2e7e5951be1499df15831aa9603..cee844b0077da6688ef91c6642c49f2a3a6bf5ca 100644 |
--- a/cc/trees/thread_proxy.h |
+++ b/cc/trees/thread_proxy.h |
@@ -71,6 +71,7 @@ class ThreadProxy : public Proxy, |
virtual void DidLoseOutputSurfaceOnImplThread() OVERRIDE; |
virtual void OnSwapBuffersCompleteOnImplThread() OVERRIDE; |
virtual void BeginFrameOnImplThread(const BeginFrameArgs& args) OVERRIDE; |
+ virtual void DidBeginFrameDeadlineOnImplThread() OVERRIDE; |
virtual void OnCanDrawStateChanged(bool can_draw) OVERRIDE; |
virtual void OnHasPendingTreeStateChanged(bool has_pending_tree) OVERRIDE; |
virtual void SetNeedsRedrawOnImplThread() OVERRIDE; |
@@ -94,10 +95,12 @@ class ThreadProxy : public Proxy, |
// SchedulerClient implementation |
virtual void SetNeedsBeginFrameOnImplThread(bool enable) OVERRIDE; |
virtual void ScheduledActionSendBeginFrameToMainThread() OVERRIDE; |
- virtual ScheduledActionDrawAndSwapResult |
+ virtual ScheduledActionDrawSwapReadbackResult |
ScheduledActionDrawAndSwapIfPossible() OVERRIDE; |
- virtual ScheduledActionDrawAndSwapResult ScheduledActionDrawAndSwapForced() |
- OVERRIDE; |
+ virtual ScheduledActionDrawSwapReadbackResult |
+ ScheduledActionDrawAndSwapForced() OVERRIDE; |
+ virtual ScheduledActionDrawSwapReadbackResult |
+ ScheduledActionDrawAndReadback() OVERRIDE; |
virtual void ScheduledActionCommit() OVERRIDE; |
virtual void ScheduledActionCheckForCompletedTileUploads() OVERRIDE; |
virtual void ScheduledActionActivatePendingTreeIfNeeded() OVERRIDE; |
@@ -105,6 +108,8 @@ class ThreadProxy : public Proxy, |
virtual void ScheduledActionAcquireLayerTexturesForMainThread() OVERRIDE; |
virtual void DidAnticipatedDrawTimeChange(base::TimeTicks time) OVERRIDE; |
virtual base::TimeDelta DrawDurationEstimate() OVERRIDE; |
+ virtual void PostBeginFrameDeadline(const base::Closure& closure, |
+ base::TimeTicks deadline) OVERRIDE; |
// ResourceUpdateControllerClient implementation |
virtual void ReadyToFinalizeTextureUpdates() OVERRIDE; |
@@ -140,13 +145,14 @@ class ThreadProxy : public Proxy, |
struct CommitPendingRequest; |
struct SchedulerStateRequest; |
- void ForceCommitOnImplThread(CompletionEvent* completion); |
+ void ForceCommitForReadbackOnImplThread( |
+ CompletionEvent* completion, |
+ ReadbackRequest *request); |
void StartCommitOnImplThread( |
CompletionEvent* completion, |
ResourceUpdateQueue* queue, |
scoped_refptr<cc::ContextProvider> offscreen_context_provider); |
void BeginFrameAbortedByMainThreadOnImplThread(); |
- void RequestReadbackOnImplThread(ReadbackRequest* request); |
void FinishAllRenderingOnImplThread(CompletionEvent* completion); |
void InitializeImplOnImplThread(CompletionEvent* completion); |
void SetLayerTreeHostClientReadyOnImplThread(); |
@@ -164,8 +170,8 @@ class ThreadProxy : public Proxy, |
void LayerTreeHostClosedOnImplThread(CompletionEvent* completion); |
void AcquireLayerTexturesForMainThreadOnImplThread( |
CompletionEvent* completion); |
- ScheduledActionDrawAndSwapResult ScheduledActionDrawAndSwapInternal( |
- bool forced_draw); |
+ ScheduledActionDrawSwapReadbackResult ScheduledActionDrawSwapReadbackInternal( |
+ bool forced_draw, bool swap_requested, bool readback_requested); |
void ForceSerializeOnSwapBuffersOnImplThread(CompletionEvent* completion); |
void CheckOutputSurfaceStatusOnImplThread(); |
void CommitPendingOnImplThreadForTesting(CommitPendingRequest* request); |
@@ -211,12 +217,16 @@ class ThreadProxy : public Proxy, |
scoped_ptr<LayerTreeHostImpl> layer_tree_host_impl_; |
scoped_ptr<Scheduler> scheduler_on_impl_thread_; |
+ bool frame_did_draw_; |
// Set when the main thread is waiting on a |
// ScheduledActionSendBeginFrameToMainThread to be issued. |
CompletionEvent* |
begin_frame_sent_to_main_thread_completion_event_on_impl_thread_; |
+ // Set when there is a pending tree on a commit. |
+ base::Closure deferred_start_commit_on_impl_thread_; |
+ |
// Set when the main thread is waiting on a readback. |
ReadbackRequest* readback_request_on_impl_thread_; |