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

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

Issue 12674030: cc: Hook vsync time source to output surface (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Review tweaks. Created 7 years, 9 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.h ('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 "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "base/time.h" 10 #include "base/time.h"
11 #include "cc/animation/animation_events.h" 11 #include "cc/animation/animation_events.h"
12 #include "cc/base/completion_event.h" 12 #include "cc/base/completion_event.h"
13 #include "cc/resources/resource_update_controller.h" 13 #include "cc/resources/resource_update_controller.h"
14 #include "cc/scheduler/scheduler.h" 14 #include "cc/scheduler/scheduler.h"
15 #include "cc/scheduler/vsync_time_source.h"
15 #include "cc/trees/layer_tree_host_impl.h" 16 #include "cc/trees/layer_tree_host_impl.h"
16 #include "cc/trees/proxy.h" 17 #include "cc/trees/proxy.h"
17 18
18 namespace cc { 19 namespace cc {
19 20
20 class ContextProvider; 21 class ContextProvider;
21 class InputHandler; 22 class InputHandler;
22 class LayerTreeHost; 23 class LayerTreeHost;
23 class ResourceUpdateQueue; 24 class ResourceUpdateQueue;
24 class Scheduler; 25 class Scheduler;
25 class ScopedThreadProxy; 26 class ScopedThreadProxy;
26 class Thread; 27 class Thread;
27 28
28 class ThreadProxy : public Proxy, 29 class ThreadProxy : public Proxy,
29 LayerTreeHostImplClient, 30 LayerTreeHostImplClient,
30 SchedulerClient, 31 SchedulerClient,
31 ResourceUpdateControllerClient { 32 ResourceUpdateControllerClient,
33 VSyncProvider {
32 public: 34 public:
33 static scoped_ptr<Proxy> Create(LayerTreeHost* layer_tree_host, 35 static scoped_ptr<Proxy> Create(LayerTreeHost* layer_tree_host,
34 scoped_ptr<Thread> impl_thread); 36 scoped_ptr<Thread> impl_thread);
35 37
36 virtual ~ThreadProxy(); 38 virtual ~ThreadProxy();
37 39
38 // Proxy implementation 40 // Proxy implementation
39 virtual bool CompositeAndReadback(void* pixels, gfx::Rect rect) OVERRIDE; 41 virtual bool CompositeAndReadback(void* pixels, gfx::Rect rect) OVERRIDE;
40 virtual void StartPageScaleAnimation(gfx::Vector2d target_offset, 42 virtual void StartPageScaleAnimation(gfx::Vector2d target_offset,
41 bool use_anchor, 43 bool use_anchor,
(...skipping 20 matching lines...) Expand all
62 virtual void ForceSerializeOnSwapBuffers() OVERRIDE; 64 virtual void ForceSerializeOnSwapBuffers() OVERRIDE;
63 virtual skia::RefPtr<SkPicture> CapturePicture() OVERRIDE; 65 virtual skia::RefPtr<SkPicture> CapturePicture() OVERRIDE;
64 virtual scoped_ptr<base::Value> AsValue() const OVERRIDE; 66 virtual scoped_ptr<base::Value> AsValue() const OVERRIDE;
65 virtual bool CommitPendingForTesting() OVERRIDE; 67 virtual bool CommitPendingForTesting() OVERRIDE;
66 68
67 // LayerTreeHostImplClient implementation 69 // LayerTreeHostImplClient implementation
68 virtual void DidLoseOutputSurfaceOnImplThread() OVERRIDE; 70 virtual void DidLoseOutputSurfaceOnImplThread() OVERRIDE;
69 virtual void OnSwapBuffersCompleteOnImplThread() OVERRIDE; 71 virtual void OnSwapBuffersCompleteOnImplThread() OVERRIDE;
70 virtual void OnVSyncParametersChanged(base::TimeTicks timebase, 72 virtual void OnVSyncParametersChanged(base::TimeTicks timebase,
71 base::TimeDelta interval) OVERRIDE; 73 base::TimeDelta interval) OVERRIDE;
74 virtual void DidVSync(base::TimeTicks frame_time) OVERRIDE;
72 virtual void OnCanDrawStateChanged(bool can_draw) OVERRIDE; 75 virtual void OnCanDrawStateChanged(bool can_draw) OVERRIDE;
73 virtual void OnHasPendingTreeStateChanged(bool has_pending_tree) OVERRIDE; 76 virtual void OnHasPendingTreeStateChanged(bool has_pending_tree) OVERRIDE;
74 virtual void SetNeedsRedrawOnImplThread() OVERRIDE; 77 virtual void SetNeedsRedrawOnImplThread() OVERRIDE;
75 virtual void DidInitializeVisibleTileOnImplThread() OVERRIDE; 78 virtual void DidInitializeVisibleTileOnImplThread() OVERRIDE;
76 virtual void SetNeedsCommitOnImplThread() OVERRIDE; 79 virtual void SetNeedsCommitOnImplThread() OVERRIDE;
77 virtual void SetNeedsManageTilesOnImplThread() OVERRIDE; 80 virtual void SetNeedsManageTilesOnImplThread() OVERRIDE;
78 virtual void PostAnimationEventsToMainThreadOnImplThread( 81 virtual void PostAnimationEventsToMainThreadOnImplThread(
79 scoped_ptr<AnimationEventsVector> queue, 82 scoped_ptr<AnimationEventsVector> queue,
80 base::Time wall_clock_time) OVERRIDE; 83 base::Time wall_clock_time) OVERRIDE;
81 virtual bool ReduceContentsTextureMemoryOnImplThread(size_t limit_bytes, 84 virtual bool ReduceContentsTextureMemoryOnImplThread(size_t limit_bytes,
(...skipping 15 matching lines...) Expand all
97 virtual void ScheduledActionCommit() OVERRIDE; 100 virtual void ScheduledActionCommit() OVERRIDE;
98 virtual void ScheduledActionCheckForCompletedTileUploads() OVERRIDE; 101 virtual void ScheduledActionCheckForCompletedTileUploads() OVERRIDE;
99 virtual void ScheduledActionActivatePendingTreeIfNeeded() OVERRIDE; 102 virtual void ScheduledActionActivatePendingTreeIfNeeded() OVERRIDE;
100 virtual void ScheduledActionBeginContextRecreation() OVERRIDE; 103 virtual void ScheduledActionBeginContextRecreation() OVERRIDE;
101 virtual void ScheduledActionAcquireLayerTexturesForMainThread() OVERRIDE; 104 virtual void ScheduledActionAcquireLayerTexturesForMainThread() OVERRIDE;
102 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks time) OVERRIDE; 105 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks time) OVERRIDE;
103 106
104 // ResourceUpdateControllerClient implementation 107 // ResourceUpdateControllerClient implementation
105 virtual void ReadyToFinalizeTextureUpdates() OVERRIDE; 108 virtual void ReadyToFinalizeTextureUpdates() OVERRIDE;
106 109
110 // VSyncProvider implementation
111 virtual void RequestVSyncNotification(VSyncClient* client) OVERRIDE;
112
107 int MaxFramesPendingForTesting() const { 113 int MaxFramesPendingForTesting() const {
108 return scheduler_on_impl_thread_->MaxFramesPending(); 114 return scheduler_on_impl_thread_->MaxFramesPending();
109 } 115 }
110 116
111 private: 117 private:
112 ThreadProxy(LayerTreeHost* layer_tree_host, scoped_ptr<Thread> impl_thread); 118 ThreadProxy(LayerTreeHost* layer_tree_host, scoped_ptr<Thread> impl_thread);
113 119
114 struct BeginFrameAndCommitState { 120 struct BeginFrameAndCommitState {
115 BeginFrameAndCommitState(); 121 BeginFrameAndCommitState();
116 ~BeginFrameAndCommitState(); 122 ~BeginFrameAndCommitState();
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 CompletionEvent* texture_acquisition_completion_event_on_impl_thread_; 247 CompletionEvent* texture_acquisition_completion_event_on_impl_thread_;
242 248
243 scoped_ptr<ResourceUpdateController> 249 scoped_ptr<ResourceUpdateController>
244 current_resource_update_controller_on_impl_thread_; 250 current_resource_update_controller_on_impl_thread_;
245 251
246 // Set when the next draw should post DidCommitAndDrawFrame to the main 252 // Set when the next draw should post DidCommitAndDrawFrame to the main
247 // thread. 253 // thread.
248 bool next_frame_is_newly_committed_frame_on_impl_thread_; 254 bool next_frame_is_newly_committed_frame_on_impl_thread_;
249 255
250 bool render_vsync_enabled_; 256 bool render_vsync_enabled_;
257 bool render_vsync_notification_enabled_;
258 VSyncClient* vsync_client_;
251 259
252 bool inside_draw_; 260 bool inside_draw_;
253 261
254 bool defer_commits_; 262 bool defer_commits_;
255 scoped_ptr<BeginFrameAndCommitState> pending_deferred_commit_; 263 scoped_ptr<BeginFrameAndCommitState> pending_deferred_commit_;
256 264
257 base::TimeTicks smoothness_takes_priority_expiration_time_; 265 base::TimeTicks smoothness_takes_priority_expiration_time_;
258 bool renew_tree_priority_on_impl_thread_pending_; 266 bool renew_tree_priority_on_impl_thread_pending_;
259 }; 267 };
260 268
261 } // namespace cc 269 } // namespace cc
262 270
263 #endif // CC_TREES_THREAD_PROXY_H_ 271 #endif // CC_TREES_THREAD_PROXY_H_
OLDNEW
« no previous file with comments | « cc/trees/single_thread_proxy.h ('k') | cc/trees/thread_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698