OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CC_TREES_THREAD_PROXY_H_ | 5 #ifndef CC_TREES_THREAD_PROXY_H_ |
6 #define CC_TREES_THREAD_PROXY_H_ | 6 #define CC_TREES_THREAD_PROXY_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 virtual void DidLoseOutputSurfaceOnImplThread() OVERRIDE; | 75 virtual void DidLoseOutputSurfaceOnImplThread() OVERRIDE; |
76 virtual void CommitVSyncParameters(base::TimeTicks timebase, | 76 virtual void CommitVSyncParameters(base::TimeTicks timebase, |
77 base::TimeDelta interval) OVERRIDE; | 77 base::TimeDelta interval) OVERRIDE; |
78 virtual void SetEstimatedParentDrawTime(base::TimeDelta draw_time) OVERRIDE; | 78 virtual void SetEstimatedParentDrawTime(base::TimeDelta draw_time) OVERRIDE; |
79 virtual void BeginFrame(const BeginFrameArgs& args) OVERRIDE; | 79 virtual void BeginFrame(const BeginFrameArgs& args) OVERRIDE; |
80 virtual void SetMaxSwapsPendingOnImplThread(int max) OVERRIDE; | 80 virtual void SetMaxSwapsPendingOnImplThread(int max) OVERRIDE; |
81 virtual void DidSwapBuffersOnImplThread() OVERRIDE; | 81 virtual void DidSwapBuffersOnImplThread() OVERRIDE; |
82 virtual void DidSwapBuffersCompleteOnImplThread() OVERRIDE; | 82 virtual void DidSwapBuffersCompleteOnImplThread() OVERRIDE; |
83 virtual void OnCanDrawStateChanged(bool can_draw) OVERRIDE; | 83 virtual void OnCanDrawStateChanged(bool can_draw) OVERRIDE; |
84 virtual void NotifyReadyToActivate() OVERRIDE; | 84 virtual void NotifyReadyToActivate() OVERRIDE; |
85 // Please call these 2 functions through | 85 // Please call these 3 functions through |
86 // LayerTreeHostImpl's SetNeedsRedraw() and SetNeedsRedrawRect(). | 86 // LayerTreeHostImpl's SetNeedsRedraw(), SetNeedsRedrawRect() and |
| 87 // SetNeedsAnimate(). |
87 virtual void SetNeedsRedrawOnImplThread() OVERRIDE; | 88 virtual void SetNeedsRedrawOnImplThread() OVERRIDE; |
88 virtual void SetNeedsRedrawRectOnImplThread(const gfx::Rect& dirty_rect) | 89 virtual void SetNeedsRedrawRectOnImplThread(const gfx::Rect& dirty_rect) |
89 OVERRIDE; | 90 OVERRIDE; |
| 91 virtual void SetNeedsAnimateOnImplThread() OVERRIDE; |
90 virtual void SetNeedsManageTilesOnImplThread() OVERRIDE; | 92 virtual void SetNeedsManageTilesOnImplThread() OVERRIDE; |
91 virtual void DidInitializeVisibleTileOnImplThread() OVERRIDE; | 93 virtual void DidInitializeVisibleTileOnImplThread() OVERRIDE; |
92 virtual void SetNeedsCommitOnImplThread() OVERRIDE; | 94 virtual void SetNeedsCommitOnImplThread() OVERRIDE; |
93 virtual void PostAnimationEventsToMainThreadOnImplThread( | 95 virtual void PostAnimationEventsToMainThreadOnImplThread( |
94 scoped_ptr<AnimationEventsVector> queue) OVERRIDE; | 96 scoped_ptr<AnimationEventsVector> queue) OVERRIDE; |
95 virtual bool ReduceContentsTextureMemoryOnImplThread(size_t limit_bytes, | 97 virtual bool ReduceContentsTextureMemoryOnImplThread(size_t limit_bytes, |
96 int priority_cutoff) | 98 int priority_cutoff) |
97 OVERRIDE; | 99 OVERRIDE; |
98 virtual void SendManagedMemoryStats() OVERRIDE; | 100 virtual void SendManagedMemoryStats() OVERRIDE; |
99 virtual bool IsInsideDraw() OVERRIDE; | 101 virtual bool IsInsideDraw() OVERRIDE; |
100 virtual void RenewTreePriority() OVERRIDE; | 102 virtual void RenewTreePriority() OVERRIDE; |
101 virtual void RequestScrollbarAnimationOnImplThread(base::TimeDelta delay) | 103 virtual void RequestScrollbarAnimationOnImplThread(base::TimeDelta delay) |
102 OVERRIDE; | 104 OVERRIDE; |
103 virtual void DidActivatePendingTree() OVERRIDE; | 105 virtual void DidActivatePendingTree() OVERRIDE; |
104 virtual void DidManageTiles() OVERRIDE; | 106 virtual void DidManageTiles() OVERRIDE; |
105 | 107 |
106 // SchedulerClient implementation | 108 // SchedulerClient implementation |
107 virtual void SetNeedsBeginFrame(bool enable) OVERRIDE; | 109 virtual void SetNeedsBeginFrame(bool enable) OVERRIDE; |
108 virtual void WillBeginImplFrame(const BeginFrameArgs& args) OVERRIDE; | 110 virtual void WillBeginImplFrame(const BeginFrameArgs& args) OVERRIDE; |
109 virtual void ScheduledActionSendBeginMainFrame() OVERRIDE; | 111 virtual void ScheduledActionSendBeginMainFrame() OVERRIDE; |
110 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapIfPossible() | 112 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapIfPossible() |
111 OVERRIDE; | 113 OVERRIDE; |
112 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapForced() OVERRIDE; | 114 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapForced() OVERRIDE; |
113 virtual DrawSwapReadbackResult ScheduledActionDrawAndReadback() OVERRIDE; | 115 virtual DrawSwapReadbackResult ScheduledActionDrawAndReadback() OVERRIDE; |
| 116 virtual void ScheduledActionAnimate() OVERRIDE; |
114 virtual void ScheduledActionCommit() OVERRIDE; | 117 virtual void ScheduledActionCommit() OVERRIDE; |
115 virtual void ScheduledActionUpdateVisibleTiles() OVERRIDE; | 118 virtual void ScheduledActionUpdateVisibleTiles() OVERRIDE; |
116 virtual void ScheduledActionActivatePendingTree() OVERRIDE; | 119 virtual void ScheduledActionActivatePendingTree() OVERRIDE; |
117 virtual void ScheduledActionBeginOutputSurfaceCreation() OVERRIDE; | 120 virtual void ScheduledActionBeginOutputSurfaceCreation() OVERRIDE; |
118 virtual void ScheduledActionManageTiles() OVERRIDE; | 121 virtual void ScheduledActionManageTiles() OVERRIDE; |
119 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks time) OVERRIDE; | 122 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks time) OVERRIDE; |
120 virtual base::TimeDelta DrawDurationEstimate() OVERRIDE; | 123 virtual base::TimeDelta DrawDurationEstimate() OVERRIDE; |
121 virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() OVERRIDE; | 124 virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() OVERRIDE; |
122 virtual base::TimeDelta CommitToActivateDurationEstimate() OVERRIDE; | 125 virtual base::TimeDelta CommitToActivateDurationEstimate() OVERRIDE; |
123 virtual void DidBeginImplFrameDeadline() OVERRIDE; | 126 virtual void DidBeginImplFrameDeadline() OVERRIDE; |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 // Set when the next draw should post DidCommitAndDrawFrame to the main | 279 // Set when the next draw should post DidCommitAndDrawFrame to the main |
277 // thread. | 280 // thread. |
278 bool next_frame_is_newly_committed_frame; | 281 bool next_frame_is_newly_committed_frame; |
279 | 282 |
280 bool inside_draw; | 283 bool inside_draw; |
281 | 284 |
282 bool input_throttled_until_commit; | 285 bool input_throttled_until_commit; |
283 | 286 |
284 // Set when we freeze animations to avoid checkerboarding. | 287 // Set when we freeze animations to avoid checkerboarding. |
285 bool animations_frozen_until_next_draw; | 288 bool animations_frozen_until_next_draw; |
286 base::TimeTicks animation_freeze_time; | 289 base::TimeTicks animation_time; |
| 290 |
| 291 // Whether a commit has been completed since the last time animations were |
| 292 // ticked. If this happens, we need to animate again. |
| 293 bool did_commit_after_animating; |
287 | 294 |
288 base::TimeTicks smoothness_takes_priority_expiration_time; | 295 base::TimeTicks smoothness_takes_priority_expiration_time; |
289 bool renew_tree_priority_pending; | 296 bool renew_tree_priority_pending; |
290 | 297 |
291 ProxyTimingHistory timing_history; | 298 ProxyTimingHistory timing_history; |
292 | 299 |
293 scoped_ptr<LayerTreeHostImpl> layer_tree_host_impl; | 300 scoped_ptr<LayerTreeHostImpl> layer_tree_host_impl; |
294 base::WeakPtrFactory<ThreadProxy> weak_factory; | 301 base::WeakPtrFactory<ThreadProxy> weak_factory; |
295 }; | 302 }; |
296 // Use accessors instead of this variable directly. | 303 // Use accessors instead of this variable directly. |
297 CompositorThreadOnly compositor_thread_vars_unsafe_; | 304 CompositorThreadOnly compositor_thread_vars_unsafe_; |
298 CompositorThreadOnly& impl(); | 305 CompositorThreadOnly& impl(); |
299 const CompositorThreadOnly& impl() const; | 306 const CompositorThreadOnly& impl() const; |
300 | 307 |
301 base::WeakPtr<ThreadProxy> main_thread_weak_ptr_; | 308 base::WeakPtr<ThreadProxy> main_thread_weak_ptr_; |
302 base::WeakPtr<ThreadProxy> impl_thread_weak_ptr_; | 309 base::WeakPtr<ThreadProxy> impl_thread_weak_ptr_; |
303 | 310 |
304 DISALLOW_COPY_AND_ASSIGN(ThreadProxy); | 311 DISALLOW_COPY_AND_ASSIGN(ThreadProxy); |
305 }; | 312 }; |
306 | 313 |
307 } // namespace cc | 314 } // namespace cc |
308 | 315 |
309 #endif // CC_TREES_THREAD_PROXY_H_ | 316 #endif // CC_TREES_THREAD_PROXY_H_ |
OLD | NEW |