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

Side by Side Diff: cc/trees/thread_proxy.h

Issue 206793003: cc: Split animating and drawing into separate actions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix input handler proxy test build. Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/trees/single_thread_proxy.cc ('k') | cc/trees/thread_proxy.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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_
OLDNEW
« no previous file with comments | « cc/trees/single_thread_proxy.cc ('k') | cc/trees/thread_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698