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_LAYER_TREE_HOST_IMPL_H_ | 5 #ifndef CC_TREES_LAYER_TREE_HOST_IMPL_H_ |
6 #define CC_TREES_LAYER_TREE_HOST_IMPL_H_ | 6 #define CC_TREES_LAYER_TREE_HOST_IMPL_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 13 matching lines...) Expand all Loading... |
24 #include "cc/input/top_controls_manager_client.h" | 24 #include "cc/input/top_controls_manager_client.h" |
25 #include "cc/layers/layer_lists.h" | 25 #include "cc/layers/layer_lists.h" |
26 #include "cc/layers/render_pass_sink.h" | 26 #include "cc/layers/render_pass_sink.h" |
27 #include "cc/output/begin_frame_args.h" | 27 #include "cc/output/begin_frame_args.h" |
28 #include "cc/output/managed_memory_policy.h" | 28 #include "cc/output/managed_memory_policy.h" |
29 #include "cc/output/output_surface_client.h" | 29 #include "cc/output/output_surface_client.h" |
30 #include "cc/output/renderer.h" | 30 #include "cc/output/renderer.h" |
31 #include "cc/quads/render_pass.h" | 31 #include "cc/quads/render_pass.h" |
32 #include "cc/resources/resource_provider.h" | 32 #include "cc/resources/resource_provider.h" |
33 #include "cc/resources/tile_manager.h" | 33 #include "cc/resources/tile_manager.h" |
34 #include "cc/scheduler/begin_frame_source.h" | |
35 #include "cc/scheduler/draw_result.h" | 34 #include "cc/scheduler/draw_result.h" |
36 #include "skia/ext/refptr.h" | 35 #include "skia/ext/refptr.h" |
37 #include "third_party/skia/include/core/SkColor.h" | 36 #include "third_party/skia/include/core/SkColor.h" |
38 #include "ui/gfx/geometry/rect.h" | 37 #include "ui/gfx/geometry/rect.h" |
39 | 38 |
40 namespace cc { | 39 namespace cc { |
41 | 40 |
42 class CompletionEvent; | 41 class CompletionEvent; |
43 class CompositorFrameMetadata; | 42 class CompositorFrameMetadata; |
44 class DebugRectHistory; | 43 class DebugRectHistory; |
45 class EvictionTilePriorityQueue; | 44 class EvictionTilePriorityQueue; |
46 class FrameRateCounter; | 45 class FrameRateCounter; |
47 class LayerImpl; | 46 class LayerImpl; |
48 class LayerTreeHostImplTimeSourceAdapter; | |
49 class LayerTreeImpl; | 47 class LayerTreeImpl; |
50 class MemoryHistory; | 48 class MemoryHistory; |
51 class PageScaleAnimation; | 49 class PageScaleAnimation; |
52 class PaintTimeCounter; | 50 class PaintTimeCounter; |
53 class PictureLayerImpl; | 51 class PictureLayerImpl; |
54 class RasterTilePriorityQueue; | 52 class RasterTilePriorityQueue; |
55 class RasterWorkerPool; | 53 class RasterWorkerPool; |
56 class RenderPassDrawQuad; | 54 class RenderPassDrawQuad; |
57 class RenderingStatsInstrumentation; | 55 class RenderingStatsInstrumentation; |
58 class ResourcePool; | 56 class ResourcePool; |
| 57 class ScrollElasticityHelper; |
59 class ScrollbarLayerImplBase; | 58 class ScrollbarLayerImplBase; |
60 class TextureMailboxDeleter; | 59 class TextureMailboxDeleter; |
61 class TopControlsManager; | 60 class TopControlsManager; |
62 class UIResourceBitmap; | 61 class UIResourceBitmap; |
63 class UIResourceRequest; | 62 class UIResourceRequest; |
64 struct RendererCapabilitiesImpl; | 63 struct RendererCapabilitiesImpl; |
65 | 64 |
66 // LayerTreeHost->Proxy callback interface. | 65 // LayerTreeHost->Proxy callback interface. |
67 class LayerTreeHostImplClient { | 66 class LayerTreeHostImplClient { |
68 public: | 67 public: |
69 virtual void UpdateRendererCapabilitiesOnImplThread() = 0; | 68 virtual void UpdateRendererCapabilitiesOnImplThread() = 0; |
70 virtual void DidLoseOutputSurfaceOnImplThread() = 0; | 69 virtual void DidLoseOutputSurfaceOnImplThread() = 0; |
71 virtual void CommitVSyncParameters(base::TimeTicks timebase, | 70 virtual void CommitVSyncParameters(base::TimeTicks timebase, |
72 base::TimeDelta interval) = 0; | 71 base::TimeDelta interval) = 0; |
73 virtual void SetEstimatedParentDrawTime(base::TimeDelta draw_time) = 0; | 72 virtual void SetEstimatedParentDrawTime(base::TimeDelta draw_time) = 0; |
74 virtual void SetMaxSwapsPendingOnImplThread(int max) = 0; | 73 virtual void SetMaxSwapsPendingOnImplThread(int max) = 0; |
75 virtual void DidSwapBuffersOnImplThread() = 0; | 74 virtual void DidSwapBuffersOnImplThread() = 0; |
76 virtual void DidSwapBuffersCompleteOnImplThread() = 0; | 75 virtual void DidSwapBuffersCompleteOnImplThread() = 0; |
77 virtual void OnCanDrawStateChanged(bool can_draw) = 0; | 76 virtual void OnCanDrawStateChanged(bool can_draw) = 0; |
78 virtual void NotifyReadyToActivate() = 0; | 77 virtual void NotifyReadyToActivate() = 0; |
| 78 virtual void NotifyReadyToDraw() = 0; |
79 // Please call these 3 functions through | 79 // Please call these 3 functions through |
80 // LayerTreeHostImpl's SetNeedsRedraw(), SetNeedsRedrawRect() and | 80 // LayerTreeHostImpl's SetNeedsRedraw(), SetNeedsRedrawRect() and |
81 // SetNeedsAnimate(). | 81 // SetNeedsAnimate(). |
82 virtual void SetNeedsRedrawOnImplThread() = 0; | 82 virtual void SetNeedsRedrawOnImplThread() = 0; |
83 virtual void SetNeedsRedrawRectOnImplThread(const gfx::Rect& damage_rect) = 0; | 83 virtual void SetNeedsRedrawRectOnImplThread(const gfx::Rect& damage_rect) = 0; |
84 virtual void SetNeedsAnimateOnImplThread() = 0; | 84 virtual void SetNeedsAnimateOnImplThread() = 0; |
85 virtual void DidInitializeVisibleTileOnImplThread() = 0; | 85 virtual void DidInitializeVisibleTileOnImplThread() = 0; |
86 virtual void SetNeedsCommitOnImplThread() = 0; | 86 virtual void SetNeedsCommitOnImplThread() = 0; |
87 virtual void SetNeedsManageTilesOnImplThread() = 0; | 87 virtual void SetNeedsManageTilesOnImplThread() = 0; |
88 virtual void PostAnimationEventsToMainThreadOnImplThread( | 88 virtual void PostAnimationEventsToMainThreadOnImplThread( |
(...skipping 16 matching lines...) Expand all Loading... |
105 | 105 |
106 // LayerTreeHostImpl owns the LayerImpl trees as well as associated rendering | 106 // LayerTreeHostImpl owns the LayerImpl trees as well as associated rendering |
107 // state. | 107 // state. |
108 class CC_EXPORT LayerTreeHostImpl | 108 class CC_EXPORT LayerTreeHostImpl |
109 : public InputHandler, | 109 : public InputHandler, |
110 public RendererClient, | 110 public RendererClient, |
111 public TileManagerClient, | 111 public TileManagerClient, |
112 public OutputSurfaceClient, | 112 public OutputSurfaceClient, |
113 public TopControlsManagerClient, | 113 public TopControlsManagerClient, |
114 public ScrollbarAnimationControllerClient, | 114 public ScrollbarAnimationControllerClient, |
115 public BeginFrameSourceMixIn, | |
116 public base::SupportsWeakPtr<LayerTreeHostImpl> { | 115 public base::SupportsWeakPtr<LayerTreeHostImpl> { |
117 public: | 116 public: |
118 static scoped_ptr<LayerTreeHostImpl> Create( | 117 static scoped_ptr<LayerTreeHostImpl> Create( |
119 const LayerTreeSettings& settings, | 118 const LayerTreeSettings& settings, |
120 LayerTreeHostImplClient* client, | 119 LayerTreeHostImplClient* client, |
121 Proxy* proxy, | 120 Proxy* proxy, |
122 RenderingStatsInstrumentation* rendering_stats_instrumentation, | 121 RenderingStatsInstrumentation* rendering_stats_instrumentation, |
123 SharedBitmapManager* shared_bitmap_manager, | 122 SharedBitmapManager* shared_bitmap_manager, |
124 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 123 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
125 int id); | 124 int id); |
126 ~LayerTreeHostImpl() override; | 125 ~LayerTreeHostImpl() override; |
127 | 126 |
128 // BeginFrameSourceMixIn implementation | |
129 void OnNeedsBeginFramesChange(bool needs_begin_frames) override; | |
130 | |
131 // InputHandler implementation | 127 // InputHandler implementation |
132 void BindToClient(InputHandlerClient* client) override; | 128 void BindToClient(InputHandlerClient* client) override; |
133 InputHandler::ScrollStatus ScrollBegin( | 129 InputHandler::ScrollStatus ScrollBegin( |
134 const gfx::Point& viewport_point, | 130 const gfx::Point& viewport_point, |
135 InputHandler::ScrollInputType type) override; | 131 InputHandler::ScrollInputType type) override; |
136 InputHandler::ScrollStatus ScrollAnimated( | 132 InputHandler::ScrollStatus ScrollAnimated( |
137 const gfx::Point& viewport_point, | 133 const gfx::Point& viewport_point, |
138 const gfx::Vector2dF& scroll_delta) override; | 134 const gfx::Vector2dF& scroll_delta) override; |
139 bool ScrollBy(const gfx::Point& viewport_point, | 135 InputHandlerScrollResult ScrollBy( |
140 const gfx::Vector2dF& scroll_delta) override; | 136 const gfx::Point& viewport_point, |
| 137 const gfx::Vector2dF& scroll_delta) override; |
141 bool ScrollVerticallyByPage(const gfx::Point& viewport_point, | 138 bool ScrollVerticallyByPage(const gfx::Point& viewport_point, |
142 ScrollDirection direction) override; | 139 ScrollDirection direction) override; |
143 void SetRootLayerScrollOffsetDelegate( | 140 void SetRootLayerScrollOffsetDelegate( |
144 LayerScrollOffsetDelegate* root_layer_scroll_offset_delegate) override; | 141 LayerScrollOffsetDelegate* root_layer_scroll_offset_delegate) override; |
145 void OnRootLayerDelegatedScrollOffsetChanged() override; | 142 void OnRootLayerDelegatedScrollOffsetChanged() override; |
146 void ScrollEnd() override; | 143 void ScrollEnd() override; |
147 InputHandler::ScrollStatus FlingScrollBegin() override; | 144 InputHandler::ScrollStatus FlingScrollBegin() override; |
148 void MouseMoveAt(const gfx::Point& viewport_point) override; | 145 void MouseMoveAt(const gfx::Point& viewport_point) override; |
149 void PinchGestureBegin() override; | 146 void PinchGestureBegin() override; |
150 void PinchGestureUpdate(float magnify_delta, | 147 void PinchGestureUpdate(float magnify_delta, |
151 const gfx::Point& anchor) override; | 148 const gfx::Point& anchor) override; |
152 void PinchGestureEnd() override; | 149 void PinchGestureEnd() override; |
153 void SetNeedsAnimate() override; | 150 void SetNeedsAnimate() override; |
154 bool IsCurrentlyScrollingLayerAt(const gfx::Point& viewport_point, | 151 bool IsCurrentlyScrollingLayerAt(const gfx::Point& viewport_point, |
155 InputHandler::ScrollInputType type) override; | 152 InputHandler::ScrollInputType type) override; |
156 bool HaveTouchEventHandlersAt(const gfx::Point& viewport_port) override; | 153 bool HaveTouchEventHandlersAt(const gfx::Point& viewport_port) override; |
157 scoped_ptr<SwapPromiseMonitor> CreateLatencyInfoSwapPromiseMonitor( | 154 scoped_ptr<SwapPromiseMonitor> CreateLatencyInfoSwapPromiseMonitor( |
158 ui::LatencyInfo* latency) override; | 155 ui::LatencyInfo* latency) override; |
| 156 ScrollElasticityHelper* CreateScrollElasticityHelper() override; |
159 | 157 |
160 // TopControlsManagerClient implementation. | 158 // TopControlsManagerClient implementation. |
161 void SetControlsTopOffset(float offset) override; | 159 void SetControlsTopOffset(float offset) override; |
162 float ControlsTopOffset() const override; | 160 float ControlsTopOffset() const override; |
163 void DidChangeTopControlsPosition() override; | 161 void DidChangeTopControlsPosition() override; |
164 bool HaveRootScrollLayer() const override; | 162 bool HaveRootScrollLayer() const override; |
165 | 163 |
166 struct CC_EXPORT FrameData : public RenderPassSink { | 164 struct CC_EXPORT FrameData : public RenderPassSink { |
167 FrameData(); | 165 FrameData(); |
168 ~FrameData() override; | 166 ~FrameData() override; |
(...skipping 12 matching lines...) Expand all Loading... |
181 void AppendRenderPass(scoped_ptr<RenderPass> render_pass) override; | 179 void AppendRenderPass(scoped_ptr<RenderPass> render_pass) override; |
182 }; | 180 }; |
183 | 181 |
184 virtual void BeginMainFrameAborted(bool did_handle); | 182 virtual void BeginMainFrameAborted(bool did_handle); |
185 virtual void BeginCommit(); | 183 virtual void BeginCommit(); |
186 virtual void CommitComplete(); | 184 virtual void CommitComplete(); |
187 virtual void Animate(base::TimeTicks monotonic_time); | 185 virtual void Animate(base::TimeTicks monotonic_time); |
188 virtual void UpdateAnimationState(bool start_ready_animations); | 186 virtual void UpdateAnimationState(bool start_ready_animations); |
189 void ActivateAnimations(); | 187 void ActivateAnimations(); |
190 void MainThreadHasStoppedFlinging(); | 188 void MainThreadHasStoppedFlinging(); |
191 void UpdateBackgroundAnimateTicking(bool should_background_tick); | |
192 void DidAnimateScrollOffset(); | 189 void DidAnimateScrollOffset(); |
193 void SetViewportDamage(const gfx::Rect& damage_rect); | 190 void SetViewportDamage(const gfx::Rect& damage_rect); |
194 | 191 |
195 virtual void ManageTiles(); | 192 virtual void ManageTiles(); |
196 | 193 |
197 // Returns DRAW_SUCCESS unless problems occured preparing the frame, and we | 194 // Returns DRAW_SUCCESS unless problems occured preparing the frame, and we |
198 // should try to avoid displaying the frame. If PrepareToDraw is called, | 195 // should try to avoid displaying the frame. If PrepareToDraw is called, |
199 // DidDrawAllLayers must also be called, regardless of whether DrawLayers is | 196 // DidDrawAllLayers must also be called, regardless of whether DrawLayers is |
200 // called between the two. | 197 // called between the two. |
201 virtual DrawResult PrepareToDraw(FrameData* frame); | 198 virtual DrawResult PrepareToDraw(FrameData* frame); |
(...skipping 25 matching lines...) Expand all Loading... |
227 | 224 |
228 // Viewport rect in view space used for tiling prioritization. | 225 // Viewport rect in view space used for tiling prioritization. |
229 const gfx::Rect ViewportRectForTilePriority() const; | 226 const gfx::Rect ViewportRectForTilePriority() const; |
230 | 227 |
231 // RendererClient implementation. | 228 // RendererClient implementation. |
232 void SetFullRootLayerDamage() override; | 229 void SetFullRootLayerDamage() override; |
233 | 230 |
234 // TileManagerClient implementation. | 231 // TileManagerClient implementation. |
235 const std::vector<PictureLayerImpl*>& GetPictureLayers() const override; | 232 const std::vector<PictureLayerImpl*>& GetPictureLayers() const override; |
236 void NotifyReadyToActivate() override; | 233 void NotifyReadyToActivate() override; |
| 234 void NotifyReadyToDraw() override; |
237 void NotifyTileStateChanged(const Tile* tile) override; | 235 void NotifyTileStateChanged(const Tile* tile) override; |
238 void BuildRasterQueue(RasterTilePriorityQueue* queue, | 236 void BuildRasterQueue(RasterTilePriorityQueue* queue, |
239 TreePriority tree_priority) override; | 237 TreePriority tree_priority) override; |
240 void BuildEvictionQueue(EvictionTilePriorityQueue* queue, | 238 void BuildEvictionQueue(EvictionTilePriorityQueue* queue, |
241 TreePriority tree_priority) override; | 239 TreePriority tree_priority) override; |
242 | 240 |
243 // ScrollbarAnimationControllerClient implementation. | 241 // ScrollbarAnimationControllerClient implementation. |
244 void PostDelayedScrollbarFade(const base::Closure& start_fade, | 242 void PostDelayedScrollbarFade(const base::Closure& start_fade, |
245 base::TimeDelta delay) override; | 243 base::TimeDelta delay) override; |
246 void SetNeedsScrollbarAnimationFrame() override; | 244 void SetNeedsScrollbarAnimationFrame() override; |
247 | 245 |
248 // OutputSurfaceClient implementation. | 246 // OutputSurfaceClient implementation. |
249 void DeferredInitialize() override; | 247 void DeferredInitialize() override; |
250 void ReleaseGL() override; | 248 void ReleaseGL() override; |
251 void CommitVSyncParameters(base::TimeTicks timebase, | 249 void CommitVSyncParameters(base::TimeTicks timebase, |
252 base::TimeDelta interval) override; | 250 base::TimeDelta interval) override; |
253 void SetNeedsRedrawRect(const gfx::Rect& rect) override; | 251 void SetNeedsRedrawRect(const gfx::Rect& rect) override; |
254 void BeginFrame(const BeginFrameArgs& args) override; | |
255 | |
256 void SetExternalDrawConstraints( | 252 void SetExternalDrawConstraints( |
257 const gfx::Transform& transform, | 253 const gfx::Transform& transform, |
258 const gfx::Rect& viewport, | 254 const gfx::Rect& viewport, |
259 const gfx::Rect& clip, | 255 const gfx::Rect& clip, |
260 const gfx::Rect& viewport_rect_for_tile_priority, | 256 const gfx::Rect& viewport_rect_for_tile_priority, |
261 const gfx::Transform& transform_for_tile_priority, | 257 const gfx::Transform& transform_for_tile_priority, |
262 bool resourceless_software_draw) override; | 258 bool resourceless_software_draw) override; |
263 void DidLoseOutputSurface() override; | 259 void DidLoseOutputSurface() override; |
264 void DidSwapBuffers() override; | 260 void DidSwapBuffers() override; |
265 void DidSwapBuffersComplete() override; | 261 void DidSwapBuffersComplete() override; |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 return scroll_affects_scroll_handler_; | 318 return scroll_affects_scroll_handler_; |
323 } | 319 } |
324 void QueueSwapPromiseForMainThreadScrollUpdate( | 320 void QueueSwapPromiseForMainThreadScrollUpdate( |
325 scoped_ptr<SwapPromise> swap_promise); | 321 scoped_ptr<SwapPromise> swap_promise); |
326 | 322 |
327 bool IsActivelyScrolling() const; | 323 bool IsActivelyScrolling() const; |
328 | 324 |
329 virtual void SetVisible(bool visible); | 325 virtual void SetVisible(bool visible); |
330 bool visible() const { return visible_; } | 326 bool visible() const { return visible_; } |
331 | 327 |
| 328 bool AnimationsAreVisible() { return visible() && CanDraw(); } |
| 329 |
332 void SetNeedsCommit() { client_->SetNeedsCommitOnImplThread(); } | 330 void SetNeedsCommit() { client_->SetNeedsCommitOnImplThread(); } |
333 void SetNeedsRedraw(); | 331 void SetNeedsRedraw(); |
334 | 332 |
335 ManagedMemoryPolicy ActualManagedMemoryPolicy() const; | 333 ManagedMemoryPolicy ActualManagedMemoryPolicy() const; |
336 | 334 |
337 size_t memory_allocation_limit_bytes() const; | 335 size_t memory_allocation_limit_bytes() const; |
338 int memory_allocation_priority_cutoff() const; | 336 int memory_allocation_priority_cutoff() const; |
339 | 337 |
340 void SetViewportSize(const gfx::Size& device_viewport_size); | 338 void SetViewportSize(const gfx::Size& device_viewport_size); |
341 gfx::Size device_viewport_size() const { return device_viewport_size_; } | 339 gfx::Size device_viewport_size() const { return device_viewport_size_; } |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
417 | 415 |
418 void UpdateCurrentBeginFrameArgs(const BeginFrameArgs& args); | 416 void UpdateCurrentBeginFrameArgs(const BeginFrameArgs& args); |
419 void ResetCurrentBeginFrameArgsForNextFrame(); | 417 void ResetCurrentBeginFrameArgsForNextFrame(); |
420 virtual BeginFrameArgs CurrentBeginFrameArgs() const; | 418 virtual BeginFrameArgs CurrentBeginFrameArgs() const; |
421 | 419 |
422 // Expected time between two begin impl frame calls. | 420 // Expected time between two begin impl frame calls. |
423 base::TimeDelta begin_impl_frame_interval() const { | 421 base::TimeDelta begin_impl_frame_interval() const { |
424 return begin_impl_frame_interval_; | 422 return begin_impl_frame_interval_; |
425 } | 423 } |
426 | 424 |
427 void AsValueInto(base::debug::TracedValue* value) const override; | 425 void AsValueInto(base::debug::TracedValue* value) const; |
428 void AsValueWithFrameInto(FrameData* frame, | 426 void AsValueWithFrameInto(FrameData* frame, |
429 base::debug::TracedValue* value) const; | 427 base::debug::TracedValue* value) const; |
430 scoped_refptr<base::debug::ConvertableToTraceFormat> AsValue() const; | 428 scoped_refptr<base::debug::ConvertableToTraceFormat> AsValue() const; |
431 scoped_refptr<base::debug::ConvertableToTraceFormat> AsValueWithFrame( | 429 scoped_refptr<base::debug::ConvertableToTraceFormat> AsValueWithFrame( |
432 FrameData* frame) const; | 430 FrameData* frame) const; |
433 scoped_refptr<base::debug::ConvertableToTraceFormat> ActivationStateAsValue() | 431 scoped_refptr<base::debug::ConvertableToTraceFormat> ActivationStateAsValue() |
434 const; | 432 const; |
435 void ActivationStateAsValueInto(base::debug::TracedValue* value) const; | 433 void ActivationStateAsValueInto(base::debug::TracedValue* value) const; |
436 | 434 |
437 bool page_scale_animation_active() const { return !!page_scale_animation_; } | 435 bool page_scale_animation_active() const { return !!page_scale_animation_; } |
(...skipping 28 matching lines...) Expand all Loading... |
466 // When a SwapPromiseMonitor is created on the impl thread, it calls | 464 // When a SwapPromiseMonitor is created on the impl thread, it calls |
467 // InsertSwapPromiseMonitor() to register itself with LayerTreeHostImpl. | 465 // InsertSwapPromiseMonitor() to register itself with LayerTreeHostImpl. |
468 // When the monitor is destroyed, it calls RemoveSwapPromiseMonitor() | 466 // When the monitor is destroyed, it calls RemoveSwapPromiseMonitor() |
469 // to unregister itself. | 467 // to unregister itself. |
470 void InsertSwapPromiseMonitor(SwapPromiseMonitor* monitor); | 468 void InsertSwapPromiseMonitor(SwapPromiseMonitor* monitor); |
471 void RemoveSwapPromiseMonitor(SwapPromiseMonitor* monitor); | 469 void RemoveSwapPromiseMonitor(SwapPromiseMonitor* monitor); |
472 | 470 |
473 void RegisterPictureLayerImpl(PictureLayerImpl* layer); | 471 void RegisterPictureLayerImpl(PictureLayerImpl* layer); |
474 void UnregisterPictureLayerImpl(PictureLayerImpl* layer); | 472 void UnregisterPictureLayerImpl(PictureLayerImpl* layer); |
475 | 473 |
476 void GetPictureLayerImplPairs( | 474 void GetPictureLayerImplPairs(std::vector<PictureLayerImpl::Pair>* layers, |
477 std::vector<PictureLayerImpl::Pair>* layers) const; | 475 bool need_valid_tile_priorities) const; |
478 | 476 |
479 void SetTopControlsLayoutHeight(float height); | 477 void SetTopControlsLayoutHeight(float height); |
480 | 478 |
481 void SetRequiresHighResToDraw() { requires_high_res_to_draw_ = true; } | 479 void SetRequiresHighResToDraw() { requires_high_res_to_draw_ = true; } |
482 void ResetRequiresHighResToDraw() { requires_high_res_to_draw_ = false; } | 480 void ResetRequiresHighResToDraw() { requires_high_res_to_draw_ = false; } |
483 bool RequiresHighResToDraw() const { return requires_high_res_to_draw_; } | 481 bool RequiresHighResToDraw() const { return requires_high_res_to_draw_; } |
484 | 482 |
485 // Only valid for synchronous (non-scheduled) single-threaded case. | 483 // Only valid for synchronous (non-scheduled) single-threaded case. |
486 void SynchronouslyInitializeAllTiles(); | 484 void SynchronouslyInitializeAllTiles(); |
487 | 485 |
(...skipping 11 matching lines...) Expand all Loading... |
499 Proxy* proxy, | 497 Proxy* proxy, |
500 RenderingStatsInstrumentation* rendering_stats_instrumentation, | 498 RenderingStatsInstrumentation* rendering_stats_instrumentation, |
501 SharedBitmapManager* shared_bitmap_manager, | 499 SharedBitmapManager* shared_bitmap_manager, |
502 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 500 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
503 int id); | 501 int id); |
504 | 502 |
505 void UpdateViewportContainerSizes(); | 503 void UpdateViewportContainerSizes(); |
506 | 504 |
507 // Virtual for testing. | 505 // Virtual for testing. |
508 virtual void AnimateLayers(base::TimeTicks monotonic_time); | 506 virtual void AnimateLayers(base::TimeTicks monotonic_time); |
509 virtual base::TimeDelta LowFrequencyAnimationInterval() const; | |
510 | |
511 const AnimationRegistrar::AnimationControllerMap& | 507 const AnimationRegistrar::AnimationControllerMap& |
512 active_animation_controllers() const { | 508 active_animation_controllers() const { |
513 return animation_registrar_->active_animation_controllers(); | 509 return animation_registrar_->active_animation_controllers(); |
514 } | 510 } |
515 | 511 |
516 bool manage_tiles_needed() const { return tile_priorities_dirty_; } | 512 bool manage_tiles_needed() const { return tile_priorities_dirty_; } |
517 | 513 |
518 LayerTreeHostImplClient* client_; | 514 LayerTreeHostImplClient* client_; |
519 Proxy* proxy_; | 515 Proxy* proxy_; |
520 | 516 |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
620 scoped_ptr<LayerTreeImpl> recycle_tree_; | 616 scoped_ptr<LayerTreeImpl> recycle_tree_; |
621 | 617 |
622 InputHandlerClient* input_handler_client_; | 618 InputHandlerClient* input_handler_client_; |
623 bool did_lock_scrolling_layer_; | 619 bool did_lock_scrolling_layer_; |
624 bool should_bubble_scrolls_; | 620 bool should_bubble_scrolls_; |
625 bool wheel_scrolling_; | 621 bool wheel_scrolling_; |
626 bool scroll_affects_scroll_handler_; | 622 bool scroll_affects_scroll_handler_; |
627 int scroll_layer_id_when_mouse_over_scrollbar_; | 623 int scroll_layer_id_when_mouse_over_scrollbar_; |
628 ScopedPtrVector<SwapPromise> swap_promises_for_main_thread_scroll_update_; | 624 ScopedPtrVector<SwapPromise> swap_promises_for_main_thread_scroll_update_; |
629 | 625 |
| 626 // An object to implement the ScrollElasticityHelper interface and |
| 627 // hold all state related to elasticity. May be NULL if never requested. |
| 628 scoped_ptr<ScrollElasticityHelper> scroll_elasticity_helper_; |
| 629 |
630 bool tile_priorities_dirty_; | 630 bool tile_priorities_dirty_; |
631 | 631 |
632 // The optional delegate for the root layer scroll offset. | 632 // The optional delegate for the root layer scroll offset. |
633 LayerScrollOffsetDelegate* root_layer_scroll_offset_delegate_; | 633 LayerScrollOffsetDelegate* root_layer_scroll_offset_delegate_; |
634 LayerTreeSettings settings_; | 634 LayerTreeSettings settings_; |
635 LayerTreeDebugState debug_state_; | 635 LayerTreeDebugState debug_state_; |
636 bool visible_; | 636 bool visible_; |
637 ManagedMemoryPolicy cached_managed_memory_policy_; | 637 ManagedMemoryPolicy cached_managed_memory_policy_; |
638 | 638 |
639 gfx::Vector2dF accumulated_root_overscroll_; | 639 gfx::Vector2dF accumulated_root_overscroll_; |
640 | 640 |
641 bool pinch_gesture_active_; | 641 bool pinch_gesture_active_; |
642 bool pinch_gesture_end_should_clear_scrolling_layer_; | 642 bool pinch_gesture_end_should_clear_scrolling_layer_; |
643 gfx::Point previous_pinch_anchor_; | 643 gfx::Point previous_pinch_anchor_; |
644 | 644 |
645 scoped_ptr<TopControlsManager> top_controls_manager_; | 645 scoped_ptr<TopControlsManager> top_controls_manager_; |
646 | 646 |
647 scoped_ptr<PageScaleAnimation> page_scale_animation_; | 647 scoped_ptr<PageScaleAnimation> page_scale_animation_; |
648 | 648 |
649 // This is used for ticking animations slowly when hidden. | |
650 scoped_ptr<LayerTreeHostImplTimeSourceAdapter> time_source_client_adapter_; | |
651 | |
652 scoped_ptr<FrameRateCounter> fps_counter_; | 649 scoped_ptr<FrameRateCounter> fps_counter_; |
653 scoped_ptr<PaintTimeCounter> paint_time_counter_; | 650 scoped_ptr<PaintTimeCounter> paint_time_counter_; |
654 scoped_ptr<MemoryHistory> memory_history_; | 651 scoped_ptr<MemoryHistory> memory_history_; |
655 scoped_ptr<DebugRectHistory> debug_rect_history_; | 652 scoped_ptr<DebugRectHistory> debug_rect_history_; |
656 | 653 |
657 scoped_ptr<TextureMailboxDeleter> texture_mailbox_deleter_; | 654 scoped_ptr<TextureMailboxDeleter> texture_mailbox_deleter_; |
658 | 655 |
659 // The maximum memory that would be used by the prioritized resource | 656 // The maximum memory that would be used by the prioritized resource |
660 // manager, if there were no limit on memory usage. | 657 // manager, if there were no limit on memory usage. |
661 size_t max_memory_needed_bytes_; | 658 size_t max_memory_needed_bytes_; |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
717 std::vector<PictureLayerImpl::Pair> picture_layer_pairs_; | 714 std::vector<PictureLayerImpl::Pair> picture_layer_pairs_; |
718 | 715 |
719 bool requires_high_res_to_draw_; | 716 bool requires_high_res_to_draw_; |
720 | 717 |
721 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl); | 718 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl); |
722 }; | 719 }; |
723 | 720 |
724 } // namespace cc | 721 } // namespace cc |
725 | 722 |
726 #endif // CC_TREES_LAYER_TREE_HOST_IMPL_H_ | 723 #endif // CC_TREES_LAYER_TREE_HOST_IMPL_H_ |
OLD | NEW |