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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 | 42 |
43 // Proxy implementation | 43 // Proxy implementation |
44 virtual bool CompositeAndReadback(void* pixels, gfx::Rect rect) OVERRIDE; | 44 virtual bool CompositeAndReadback(void* pixels, gfx::Rect rect) OVERRIDE; |
45 virtual void FinishAllRendering() OVERRIDE; | 45 virtual void FinishAllRendering() OVERRIDE; |
46 virtual bool IsStarted() const OVERRIDE; | 46 virtual bool IsStarted() const OVERRIDE; |
47 virtual void SetLayerTreeHostClientReady() OVERRIDE; | 47 virtual void SetLayerTreeHostClientReady() OVERRIDE; |
48 virtual void SetVisible(bool visible) OVERRIDE; | 48 virtual void SetVisible(bool visible) OVERRIDE; |
49 virtual void CreateAndInitializeOutputSurface() OVERRIDE; | 49 virtual void CreateAndInitializeOutputSurface() OVERRIDE; |
50 virtual const RendererCapabilities& GetRendererCapabilities() const OVERRIDE; | 50 virtual const RendererCapabilities& GetRendererCapabilities() const OVERRIDE; |
51 virtual void SetNeedsAnimate() OVERRIDE; | 51 virtual void SetNeedsAnimate() OVERRIDE; |
| 52 virtual void SetNeedsUpdateLayers() OVERRIDE; |
52 virtual void SetNeedsCommit() OVERRIDE; | 53 virtual void SetNeedsCommit() OVERRIDE; |
53 virtual void SetNeedsRedraw(gfx::Rect damage_rect) OVERRIDE; | 54 virtual void SetNeedsRedraw(gfx::Rect damage_rect) OVERRIDE; |
54 virtual void SetDeferCommits(bool defer_commits) OVERRIDE; | 55 virtual void SetDeferCommits(bool defer_commits) OVERRIDE; |
55 virtual bool CommitRequested() const OVERRIDE; | 56 virtual bool CommitRequested() const OVERRIDE; |
56 virtual void MainThreadHasStoppedFlinging() OVERRIDE; | 57 virtual void MainThreadHasStoppedFlinging() OVERRIDE; |
57 virtual void Start(scoped_ptr<OutputSurface> first_output_surface) OVERRIDE; | 58 virtual void Start(scoped_ptr<OutputSurface> first_output_surface) OVERRIDE; |
58 virtual void Stop() OVERRIDE; | 59 virtual void Stop() OVERRIDE; |
59 virtual size_t MaxPartialTextureUpdates() const OVERRIDE; | 60 virtual size_t MaxPartialTextureUpdates() const OVERRIDE; |
60 virtual void AcquireLayerTextures() OVERRIDE; | 61 virtual void AcquireLayerTextures() OVERRIDE; |
61 virtual void ForceSerializeOnSwapBuffers() OVERRIDE; | 62 virtual void ForceSerializeOnSwapBuffers() OVERRIDE; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 scoped_ptr<BeginFrameAndCommitState> begin_frame_state); | 129 scoped_ptr<BeginFrameAndCommitState> begin_frame_state); |
129 void DidCommitAndDrawFrame(); | 130 void DidCommitAndDrawFrame(); |
130 void DidCompleteSwapBuffers(); | 131 void DidCompleteSwapBuffers(); |
131 void SetAnimationEvents(scoped_ptr<AnimationEventsVector> queue, | 132 void SetAnimationEvents(scoped_ptr<AnimationEventsVector> queue, |
132 base::Time wall_clock_time); | 133 base::Time wall_clock_time); |
133 void DoCreateAndInitializeOutputSurface(); | 134 void DoCreateAndInitializeOutputSurface(); |
134 // |capabilities| is set only when |success| is true. | 135 // |capabilities| is set only when |success| is true. |
135 void OnOutputSurfaceInitializeAttempted( | 136 void OnOutputSurfaceInitializeAttempted( |
136 bool success, | 137 bool success, |
137 const RendererCapabilities& capabilities); | 138 const RendererCapabilities& capabilities); |
| 139 void SendCommitRequestToImplThreadIfNeeded(); |
138 | 140 |
139 // Called on impl thread. | 141 // Called on impl thread. |
140 struct ReadbackRequest; | 142 struct ReadbackRequest; |
141 struct CommitPendingRequest; | 143 struct CommitPendingRequest; |
142 struct SchedulerStateRequest; | 144 struct SchedulerStateRequest; |
143 | 145 |
144 void ForceCommitOnImplThread(CompletionEvent* completion); | 146 void ForceCommitOnImplThread(CompletionEvent* completion); |
145 void StartCommitOnImplThread( | 147 void StartCommitOnImplThread( |
146 CompletionEvent* completion, | 148 CompletionEvent* completion, |
147 ResourceUpdateQueue* queue, | 149 ResourceUpdateQueue* queue, |
148 scoped_refptr<cc::ContextProvider> offscreen_context_provider); | 150 scoped_refptr<cc::ContextProvider> offscreen_context_provider); |
149 void BeginFrameAbortedByMainThreadOnImplThread(); | 151 void BeginFrameAbortedByMainThreadOnImplThread(bool did_handle); |
150 void RequestReadbackOnImplThread(ReadbackRequest* request); | 152 void RequestReadbackOnImplThread(ReadbackRequest* request); |
151 void FinishAllRenderingOnImplThread(CompletionEvent* completion); | 153 void FinishAllRenderingOnImplThread(CompletionEvent* completion); |
152 void InitializeImplOnImplThread(CompletionEvent* completion); | 154 void InitializeImplOnImplThread(CompletionEvent* completion); |
153 void SetLayerTreeHostClientReadyOnImplThread(); | 155 void SetLayerTreeHostClientReadyOnImplThread(); |
154 void SetVisibleOnImplThread(CompletionEvent* completion, bool visible); | 156 void SetVisibleOnImplThread(CompletionEvent* completion, bool visible); |
155 void HasInitializedOutputSurfaceOnImplThread( | 157 void HasInitializedOutputSurfaceOnImplThread( |
156 CompletionEvent* completion, | 158 CompletionEvent* completion, |
157 bool* has_initialized_output_surface); | 159 bool* has_initialized_output_surface); |
158 void InitializeOutputSurfaceOnImplThread( | 160 void InitializeOutputSurfaceOnImplThread( |
159 CompletionEvent* completion, | 161 CompletionEvent* completion, |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 // Set when the next draw should post DidCommitAndDrawFrame to the main | 236 // Set when the next draw should post DidCommitAndDrawFrame to the main |
235 // thread. | 237 // thread. |
236 bool next_frame_is_newly_committed_frame_on_impl_thread_; | 238 bool next_frame_is_newly_committed_frame_on_impl_thread_; |
237 | 239 |
238 bool throttle_frame_production_; | 240 bool throttle_frame_production_; |
239 bool begin_frame_scheduling_enabled_; | 241 bool begin_frame_scheduling_enabled_; |
240 bool using_synchronous_renderer_compositor_; | 242 bool using_synchronous_renderer_compositor_; |
241 | 243 |
242 bool inside_draw_; | 244 bool inside_draw_; |
243 | 245 |
| 246 bool can_cancel_commit_; |
| 247 |
244 bool defer_commits_; | 248 bool defer_commits_; |
245 scoped_ptr<BeginFrameAndCommitState> pending_deferred_commit_; | 249 scoped_ptr<BeginFrameAndCommitState> pending_deferred_commit_; |
246 | 250 |
247 base::TimeTicks smoothness_takes_priority_expiration_time_; | 251 base::TimeTicks smoothness_takes_priority_expiration_time_; |
248 bool renew_tree_priority_on_impl_thread_pending_; | 252 bool renew_tree_priority_on_impl_thread_pending_; |
249 | 253 |
250 RollingTimeDeltaHistory draw_duration_history_; | 254 RollingTimeDeltaHistory draw_duration_history_; |
251 RollingTimeDeltaHistory begin_frame_to_commit_duration_history_; | 255 RollingTimeDeltaHistory begin_frame_to_commit_duration_history_; |
252 RollingTimeDeltaHistory commit_to_activate_duration_history_; | 256 RollingTimeDeltaHistory commit_to_activate_duration_history_; |
253 | 257 |
254 // Used for computing samples added to | 258 // Used for computing samples added to |
255 // begin_frame_to_commit_draw_duration_history_ and | 259 // begin_frame_to_commit_draw_duration_history_ and |
256 // activation_duration_history_. | 260 // activation_duration_history_. |
257 base::TimeTicks begin_frame_sent_to_main_thread_time_; | 261 base::TimeTicks begin_frame_sent_to_main_thread_time_; |
258 base::TimeTicks commit_complete_time_; | 262 base::TimeTicks commit_complete_time_; |
259 | 263 |
260 DISALLOW_COPY_AND_ASSIGN(ThreadProxy); | 264 DISALLOW_COPY_AND_ASSIGN(ThreadProxy); |
261 }; | 265 }; |
262 | 266 |
263 } // namespace cc | 267 } // namespace cc |
264 | 268 |
265 #endif // CC_TREES_THREAD_PROXY_H_ | 269 #endif // CC_TREES_THREAD_PROXY_H_ |
OLD | NEW |