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 3 functions through | 85 // Please call these 2 functions through |
86 // LayerTreeHostImpl's SetNeedsRedraw(), SetNeedsRedrawRect() and | 86 // LayerTreeHostImpl's SetNeedsRedraw() and SetNeedsRedrawRect(). |
87 // SetNeedsAnimate(). | |
88 virtual void SetNeedsRedrawOnImplThread() OVERRIDE; | 87 virtual void SetNeedsRedrawOnImplThread() OVERRIDE; |
89 virtual void SetNeedsRedrawRectOnImplThread(const gfx::Rect& dirty_rect) | 88 virtual void SetNeedsRedrawRectOnImplThread(const gfx::Rect& dirty_rect) |
90 OVERRIDE; | 89 OVERRIDE; |
91 virtual void SetNeedsAnimateOnImplThread() OVERRIDE; | |
92 virtual void SetNeedsManageTilesOnImplThread() OVERRIDE; | 90 virtual void SetNeedsManageTilesOnImplThread() OVERRIDE; |
93 virtual void DidInitializeVisibleTileOnImplThread() OVERRIDE; | 91 virtual void DidInitializeVisibleTileOnImplThread() OVERRIDE; |
94 virtual void SetNeedsCommitOnImplThread() OVERRIDE; | 92 virtual void SetNeedsCommitOnImplThread() OVERRIDE; |
95 virtual void PostAnimationEventsToMainThreadOnImplThread( | 93 virtual void PostAnimationEventsToMainThreadOnImplThread( |
96 scoped_ptr<AnimationEventsVector> queue) OVERRIDE; | 94 scoped_ptr<AnimationEventsVector> queue) OVERRIDE; |
97 virtual bool ReduceContentsTextureMemoryOnImplThread(size_t limit_bytes, | 95 virtual bool ReduceContentsTextureMemoryOnImplThread(size_t limit_bytes, |
98 int priority_cutoff) | 96 int priority_cutoff) |
99 OVERRIDE; | 97 OVERRIDE; |
100 virtual void SendManagedMemoryStats() OVERRIDE; | 98 virtual void SendManagedMemoryStats() OVERRIDE; |
101 virtual bool IsInsideDraw() OVERRIDE; | 99 virtual bool IsInsideDraw() OVERRIDE; |
102 virtual void RenewTreePriority() OVERRIDE; | 100 virtual void RenewTreePriority() OVERRIDE; |
103 virtual void RequestScrollbarAnimationOnImplThread(base::TimeDelta delay) | 101 virtual void RequestScrollbarAnimationOnImplThread(base::TimeDelta delay) |
104 OVERRIDE; | 102 OVERRIDE; |
105 virtual void DidActivatePendingTree() OVERRIDE; | 103 virtual void DidActivatePendingTree() OVERRIDE; |
106 virtual void DidManageTiles() OVERRIDE; | 104 virtual void DidManageTiles() OVERRIDE; |
107 | 105 |
108 // SchedulerClient implementation | 106 // SchedulerClient implementation |
109 virtual void SetNeedsBeginFrame(bool enable) OVERRIDE; | 107 virtual void SetNeedsBeginFrame(bool enable) OVERRIDE; |
110 virtual void WillBeginImplFrame(const BeginFrameArgs& args) OVERRIDE; | 108 virtual void WillBeginImplFrame(const BeginFrameArgs& args) OVERRIDE; |
111 virtual void ScheduledActionSendBeginMainFrame() OVERRIDE; | 109 virtual void ScheduledActionSendBeginMainFrame() OVERRIDE; |
112 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapIfPossible() | 110 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapIfPossible() |
113 OVERRIDE; | 111 OVERRIDE; |
114 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapForced() OVERRIDE; | 112 virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapForced() OVERRIDE; |
115 virtual DrawSwapReadbackResult ScheduledActionDrawAndReadback() OVERRIDE; | 113 virtual DrawSwapReadbackResult ScheduledActionDrawAndReadback() OVERRIDE; |
116 virtual void ScheduledActionAnimate() OVERRIDE; | |
117 virtual void ScheduledActionCommit() OVERRIDE; | 114 virtual void ScheduledActionCommit() OVERRIDE; |
118 virtual void ScheduledActionUpdateVisibleTiles() OVERRIDE; | 115 virtual void ScheduledActionUpdateVisibleTiles() OVERRIDE; |
119 virtual void ScheduledActionActivatePendingTree() OVERRIDE; | 116 virtual void ScheduledActionActivatePendingTree() OVERRIDE; |
120 virtual void ScheduledActionBeginOutputSurfaceCreation() OVERRIDE; | 117 virtual void ScheduledActionBeginOutputSurfaceCreation() OVERRIDE; |
121 virtual void ScheduledActionManageTiles() OVERRIDE; | 118 virtual void ScheduledActionManageTiles() OVERRIDE; |
122 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks time) OVERRIDE; | 119 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks time) OVERRIDE; |
123 virtual base::TimeDelta DrawDurationEstimate() OVERRIDE; | 120 virtual base::TimeDelta DrawDurationEstimate() OVERRIDE; |
124 virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() OVERRIDE; | 121 virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() OVERRIDE; |
125 virtual base::TimeDelta CommitToActivateDurationEstimate() OVERRIDE; | 122 virtual base::TimeDelta CommitToActivateDurationEstimate() OVERRIDE; |
126 virtual void DidBeginImplFrameDeadline() OVERRIDE; | 123 virtual void DidBeginImplFrameDeadline() OVERRIDE; |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 // Set when the next draw should post DidCommitAndDrawFrame to the main | 276 // Set when the next draw should post DidCommitAndDrawFrame to the main |
280 // thread. | 277 // thread. |
281 bool next_frame_is_newly_committed_frame; | 278 bool next_frame_is_newly_committed_frame; |
282 | 279 |
283 bool inside_draw; | 280 bool inside_draw; |
284 | 281 |
285 bool input_throttled_until_commit; | 282 bool input_throttled_until_commit; |
286 | 283 |
287 // Set when we freeze animations to avoid checkerboarding. | 284 // Set when we freeze animations to avoid checkerboarding. |
288 bool animations_frozen_until_next_draw; | 285 bool animations_frozen_until_next_draw; |
289 base::TimeTicks animation_time; | 286 base::TimeTicks animation_freeze_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; | |
294 | 287 |
295 base::TimeTicks smoothness_takes_priority_expiration_time; | 288 base::TimeTicks smoothness_takes_priority_expiration_time; |
296 bool renew_tree_priority_pending; | 289 bool renew_tree_priority_pending; |
297 | 290 |
298 ProxyTimingHistory timing_history; | 291 ProxyTimingHistory timing_history; |
299 | 292 |
300 scoped_ptr<LayerTreeHostImpl> layer_tree_host_impl; | 293 scoped_ptr<LayerTreeHostImpl> layer_tree_host_impl; |
301 base::WeakPtrFactory<ThreadProxy> weak_factory; | 294 base::WeakPtrFactory<ThreadProxy> weak_factory; |
302 }; | 295 }; |
303 // Use accessors instead of this variable directly. | 296 // Use accessors instead of this variable directly. |
304 CompositorThreadOnly compositor_thread_vars_unsafe_; | 297 CompositorThreadOnly compositor_thread_vars_unsafe_; |
305 CompositorThreadOnly& impl(); | 298 CompositorThreadOnly& impl(); |
306 const CompositorThreadOnly& impl() const; | 299 const CompositorThreadOnly& impl() const; |
307 | 300 |
308 base::WeakPtr<ThreadProxy> main_thread_weak_ptr_; | 301 base::WeakPtr<ThreadProxy> main_thread_weak_ptr_; |
309 base::WeakPtr<ThreadProxy> impl_thread_weak_ptr_; | 302 base::WeakPtr<ThreadProxy> impl_thread_weak_ptr_; |
310 | 303 |
311 DISALLOW_COPY_AND_ASSIGN(ThreadProxy); | 304 DISALLOW_COPY_AND_ASSIGN(ThreadProxy); |
312 }; | 305 }; |
313 | 306 |
314 } // namespace cc | 307 } // namespace cc |
315 | 308 |
316 #endif // CC_TREES_THREAD_PROXY_H_ | 309 #endif // CC_TREES_THREAD_PROXY_H_ |
OLD | NEW |