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

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

Issue 1194743002: cc: Remove ResourceUpdateQueue and ResourceUpdateController. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: resourcequeue: header Created 5 years, 6 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
« 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"
11 #include "base/memory/weak_ptr.h" 11 #include "base/memory/weak_ptr.h"
12 #include "base/time/time.h" 12 #include "base/time/time.h"
13 #include "cc/animation/animation_events.h" 13 #include "cc/animation/animation_events.h"
14 #include "cc/base/completion_event.h" 14 #include "cc/base/completion_event.h"
15 #include "cc/base/delayed_unique_notifier.h" 15 #include "cc/base/delayed_unique_notifier.h"
16 #include "cc/resources/resource_update_controller.h"
17 #include "cc/scheduler/commit_earlyout_reason.h" 16 #include "cc/scheduler/commit_earlyout_reason.h"
18 #include "cc/scheduler/scheduler.h" 17 #include "cc/scheduler/scheduler.h"
19 #include "cc/trees/layer_tree_host_impl.h" 18 #include "cc/trees/layer_tree_host_impl.h"
20 #include "cc/trees/proxy.h" 19 #include "cc/trees/proxy.h"
21 #include "cc/trees/proxy_timing_history.h" 20 #include "cc/trees/proxy_timing_history.h"
22 21
23 namespace base { 22 namespace base {
24 class SingleThreadTaskRunner; 23 class SingleThreadTaskRunner;
25 } 24 }
26 25
27 namespace cc { 26 namespace cc {
28 27
29 class BeginFrameSource; 28 class BeginFrameSource;
30 class ContextProvider; 29 class ContextProvider;
31 class InputHandlerClient; 30 class InputHandlerClient;
32 class LayerTreeHost; 31 class LayerTreeHost;
33 class PrioritizedResourceManager; 32 class PrioritizedResourceManager;
34 class ResourceUpdateQueue;
35 class Scheduler; 33 class Scheduler;
36 class ScopedThreadProxy; 34 class ScopedThreadProxy;
37 35
38 class CC_EXPORT ThreadProxy : public Proxy, 36 class CC_EXPORT ThreadProxy : public Proxy,
39 NON_EXPORTED_BASE(LayerTreeHostImplClient), 37 NON_EXPORTED_BASE(LayerTreeHostImplClient),
40 NON_EXPORTED_BASE(SchedulerClient), 38 NON_EXPORTED_BASE(SchedulerClient) {
41 NON_EXPORTED_BASE(ResourceUpdateControllerClient) {
42 public: 39 public:
43 static scoped_ptr<Proxy> Create( 40 static scoped_ptr<Proxy> Create(
44 LayerTreeHost* layer_tree_host, 41 LayerTreeHost* layer_tree_host,
45 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, 42 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
46 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, 43 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner,
47 scoped_ptr<BeginFrameSource> external_begin_frame_source); 44 scoped_ptr<BeginFrameSource> external_begin_frame_source);
48 45
49 ~ThreadProxy() override; 46 ~ThreadProxy() override;
50 47
51 struct BeginMainFrameAndCommitState { 48 struct BeginMainFrameAndCommitState {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 // Set when the main thread is waiting on a 105 // Set when the main thread is waiting on a
109 // ScheduledActionSendBeginMainFrame to be issued. 106 // ScheduledActionSendBeginMainFrame to be issued.
110 CompletionEvent* begin_main_frame_sent_completion_event; 107 CompletionEvent* begin_main_frame_sent_completion_event;
111 108
112 // Set when the main thread is waiting on a commit to complete. 109 // Set when the main thread is waiting on a commit to complete.
113 CompletionEvent* commit_completion_event; 110 CompletionEvent* commit_completion_event;
114 111
115 // Set when the main thread is waiting on a pending tree activation. 112 // Set when the main thread is waiting on a pending tree activation.
116 CompletionEvent* completion_event_for_commit_held_on_tree_activation; 113 CompletionEvent* completion_event_for_commit_held_on_tree_activation;
117 114
118 scoped_ptr<ResourceUpdateController> current_resource_update_controller;
119
120 // Set when the next draw should post DidCommitAndDrawFrame to the main 115 // Set when the next draw should post DidCommitAndDrawFrame to the main
121 // thread. 116 // thread.
122 bool next_frame_is_newly_committed_frame; 117 bool next_frame_is_newly_committed_frame;
123 118
124 bool inside_draw; 119 bool inside_draw;
125 120
126 bool input_throttled_until_commit; 121 bool input_throttled_until_commit;
127 122
128 base::TimeTicks animation_time; 123 base::TimeTicks animation_time;
129 124
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 void SetNeedsCommit() override; 158 void SetNeedsCommit() override;
164 void SetNeedsRedraw(const gfx::Rect& damage_rect) override; 159 void SetNeedsRedraw(const gfx::Rect& damage_rect) override;
165 void SetNextCommitWaitsForActivation() override; 160 void SetNextCommitWaitsForActivation() override;
166 void NotifyInputThrottledUntilCommit() override; 161 void NotifyInputThrottledUntilCommit() override;
167 void SetDeferCommits(bool defer_commits) override; 162 void SetDeferCommits(bool defer_commits) override;
168 bool CommitRequested() const override; 163 bool CommitRequested() const override;
169 bool BeginMainFrameRequested() const override; 164 bool BeginMainFrameRequested() const override;
170 void MainThreadHasStoppedFlinging() override; 165 void MainThreadHasStoppedFlinging() override;
171 void Start() override; 166 void Start() override;
172 void Stop() override; 167 void Stop() override;
173 size_t MaxPartialTextureUpdates() const override;
174 void ForceSerializeOnSwapBuffers() override; 168 void ForceSerializeOnSwapBuffers() override;
175 bool SupportsImplScrolling() const override; 169 bool SupportsImplScrolling() const override;
176 void SetDebugState(const LayerTreeDebugState& debug_state) override; 170 void SetDebugState(const LayerTreeDebugState& debug_state) override;
177 bool MainFrameWillHappenForTesting() override; 171 bool MainFrameWillHappenForTesting() override;
178 void SetChildrenNeedBeginFrames(bool children_need_begin_frames) override; 172 void SetChildrenNeedBeginFrames(bool children_need_begin_frames) override;
179 void SetAuthoritativeVSyncInterval(const base::TimeDelta& interval) override; 173 void SetAuthoritativeVSyncInterval(const base::TimeDelta& interval) override;
180 174
181 // LayerTreeHostImplClient implementation 175 // LayerTreeHostImplClient implementation
182 void UpdateRendererCapabilitiesOnImplThread() override; 176 void UpdateRendererCapabilitiesOnImplThread() override;
183 void DidLoseOutputSurfaceOnImplThread() override; 177 void DidLoseOutputSurfaceOnImplThread() override;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 void DidFinishImplFrame() override; 214 void DidFinishImplFrame() override;
221 void ScheduledActionSendBeginMainFrame() override; 215 void ScheduledActionSendBeginMainFrame() override;
222 DrawResult ScheduledActionDrawAndSwapIfPossible() override; 216 DrawResult ScheduledActionDrawAndSwapIfPossible() override;
223 DrawResult ScheduledActionDrawAndSwapForced() override; 217 DrawResult ScheduledActionDrawAndSwapForced() override;
224 void ScheduledActionAnimate() override; 218 void ScheduledActionAnimate() override;
225 void ScheduledActionCommit() override; 219 void ScheduledActionCommit() override;
226 void ScheduledActionActivateSyncTree() override; 220 void ScheduledActionActivateSyncTree() override;
227 void ScheduledActionBeginOutputSurfaceCreation() override; 221 void ScheduledActionBeginOutputSurfaceCreation() override;
228 void ScheduledActionPrepareTiles() override; 222 void ScheduledActionPrepareTiles() override;
229 void ScheduledActionInvalidateOutputSurface() override; 223 void ScheduledActionInvalidateOutputSurface() override;
230 void DidAnticipatedDrawTimeChange(base::TimeTicks time) override;
231 base::TimeDelta DrawDurationEstimate() override; 224 base::TimeDelta DrawDurationEstimate() override;
232 base::TimeDelta BeginMainFrameToCommitDurationEstimate() override; 225 base::TimeDelta BeginMainFrameToCommitDurationEstimate() override;
233 base::TimeDelta CommitToActivateDurationEstimate() override; 226 base::TimeDelta CommitToActivateDurationEstimate() override;
234 void SendBeginFramesToChildren(const BeginFrameArgs& args) override; 227 void SendBeginFramesToChildren(const BeginFrameArgs& args) override;
235 void SendBeginMainFrameNotExpectedSoon() override; 228 void SendBeginMainFrameNotExpectedSoon() override;
236 229
237 // ResourceUpdateControllerClient implementation
238 void ReadyToFinalizeTextureUpdates() override;
239
240 protected: 230 protected:
241 ThreadProxy( 231 ThreadProxy(
242 LayerTreeHost* layer_tree_host, 232 LayerTreeHost* layer_tree_host,
243 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, 233 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
244 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, 234 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner,
245 scoped_ptr<BeginFrameSource> external_begin_frame_source); 235 scoped_ptr<BeginFrameSource> external_begin_frame_source);
246 236
247 private: 237 private:
248 // Called on main thread. 238 // Called on main thread.
249 void SetRendererCapabilitiesMainThreadCopy( 239 void SetRendererCapabilitiesMainThreadCopy(
250 const RendererCapabilities& capabilities); 240 const RendererCapabilities& capabilities);
251 void BeginMainFrame( 241 void BeginMainFrame(
252 scoped_ptr<BeginMainFrameAndCommitState> begin_main_frame_state); 242 scoped_ptr<BeginMainFrameAndCommitState> begin_main_frame_state);
253 void BeginMainFrameNotExpectedSoon(); 243 void BeginMainFrameNotExpectedSoon();
254 void DidCommitAndDrawFrame(); 244 void DidCommitAndDrawFrame();
255 void DidCompleteSwapBuffers(); 245 void DidCompleteSwapBuffers();
256 void SetAnimationEvents(scoped_ptr<AnimationEventsVector> queue); 246 void SetAnimationEvents(scoped_ptr<AnimationEventsVector> queue);
257 void DidLoseOutputSurface(); 247 void DidLoseOutputSurface();
258 void RequestNewOutputSurface(); 248 void RequestNewOutputSurface();
259 void DidInitializeOutputSurface(bool success, 249 void DidInitializeOutputSurface(bool success,
260 const RendererCapabilities& capabilities); 250 const RendererCapabilities& capabilities);
261 void SendCommitRequestToImplThreadIfNeeded(); 251 void SendCommitRequestToImplThreadIfNeeded();
262 void DidCompletePageScaleAnimation(); 252 void DidCompletePageScaleAnimation();
263 253
264 // Called on impl thread. 254 // Called on impl thread.
265 struct SchedulerStateRequest; 255 struct SchedulerStateRequest;
266 256
267 void StartCommitOnImplThread(CompletionEvent* completion, 257 void StartCommitOnImplThread(CompletionEvent* completion);
268 ResourceUpdateQueue* queue);
269 void BeginMainFrameAbortedOnImplThread(CommitEarlyOutReason reason); 258 void BeginMainFrameAbortedOnImplThread(CommitEarlyOutReason reason);
270 void FinishAllRenderingOnImplThread(CompletionEvent* completion); 259 void FinishAllRenderingOnImplThread(CompletionEvent* completion);
271 void InitializeImplOnImplThread(CompletionEvent* completion); 260 void InitializeImplOnImplThread(CompletionEvent* completion);
272 void SetLayerTreeHostClientReadyOnImplThread(); 261 void SetLayerTreeHostClientReadyOnImplThread();
273 void SetVisibleOnImplThread(CompletionEvent* completion, bool visible); 262 void SetVisibleOnImplThread(CompletionEvent* completion, bool visible);
274 void SetThrottleFrameProductionOnImplThread(bool throttle); 263 void SetThrottleFrameProductionOnImplThread(bool throttle);
275 void HasInitializedOutputSurfaceOnImplThread( 264 void HasInitializedOutputSurfaceOnImplThread(
276 CompletionEvent* completion, 265 CompletionEvent* completion,
277 bool* has_initialized_output_surface); 266 bool* has_initialized_output_surface);
278 void DeleteContentsTexturesOnImplThread(CompletionEvent* completion); 267 void DeleteContentsTexturesOnImplThread(CompletionEvent* completion);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 299
311 base::WeakPtr<ThreadProxy> main_thread_weak_ptr_; 300 base::WeakPtr<ThreadProxy> main_thread_weak_ptr_;
312 base::WeakPtr<ThreadProxy> impl_thread_weak_ptr_; 301 base::WeakPtr<ThreadProxy> impl_thread_weak_ptr_;
313 302
314 DISALLOW_COPY_AND_ASSIGN(ThreadProxy); 303 DISALLOW_COPY_AND_ASSIGN(ThreadProxy);
315 }; 304 };
316 305
317 } // namespace cc 306 } // namespace cc
318 307
319 #endif // CC_TREES_THREAD_PROXY_H_ 308 #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