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 <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <bitset> | 10 #include <bitset> |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 | 163 |
164 // InputHandler implementation | 164 // InputHandler implementation |
165 void BindToClient(InputHandlerClient* client, | 165 void BindToClient(InputHandlerClient* client, |
166 bool wheel_scroll_latching_enabled) override; | 166 bool wheel_scroll_latching_enabled) override; |
167 InputHandler::ScrollStatus ScrollBegin( | 167 InputHandler::ScrollStatus ScrollBegin( |
168 ScrollState* scroll_state, | 168 ScrollState* scroll_state, |
169 InputHandler::ScrollInputType type) override; | 169 InputHandler::ScrollInputType type) override; |
170 InputHandler::ScrollStatus RootScrollBegin( | 170 InputHandler::ScrollStatus RootScrollBegin( |
171 ScrollState* scroll_state, | 171 ScrollState* scroll_state, |
172 InputHandler::ScrollInputType type) override; | 172 InputHandler::ScrollInputType type) override; |
173 ScrollStatus ScrollAnimatedBegin(const gfx::Point& viewport_point) override; | 173 ScrollStatus ScrollAnimatedBegin(ScrollState* scroll_state) override; |
174 InputHandler::ScrollStatus ScrollAnimated( | 174 InputHandler::ScrollStatus ScrollAnimated( |
175 const gfx::Point& viewport_point, | 175 const gfx::Point& viewport_point, |
176 const gfx::Vector2dF& scroll_delta, | 176 const gfx::Vector2dF& scroll_delta, |
177 base::TimeDelta delayed_by = base::TimeDelta()) override; | 177 base::TimeDelta delayed_by = base::TimeDelta()) override; |
178 void ApplyScroll(ScrollNode* scroll_node, ScrollState* scroll_state); | 178 void ApplyScroll(ScrollNode* scroll_node, ScrollState* scroll_state); |
179 InputHandlerScrollResult ScrollBy(ScrollState* scroll_state) override; | 179 InputHandlerScrollResult ScrollBy(ScrollState* scroll_state) override; |
180 void RequestUpdateForSynchronousInputHandler() override; | 180 void RequestUpdateForSynchronousInputHandler() override; |
181 void SetSynchronousInputHandlerRootScrollOffset( | 181 void SetSynchronousInputHandlerRootScrollOffset( |
182 const gfx::ScrollOffset& root_offset) override; | 182 const gfx::ScrollOffset& root_offset) override; |
183 void ScrollEnd(ScrollState* scroll_state) override; | 183 void ScrollEnd(ScrollState* scroll_state) override; |
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
627 | 627 |
628 // Removes empty or orphan RenderPasses from the frame. | 628 // Removes empty or orphan RenderPasses from the frame. |
629 static void RemoveRenderPasses(FrameData* frame); | 629 static void RemoveRenderPasses(FrameData* frame); |
630 | 630 |
631 LayerTreeHostImplClient* client_; | 631 LayerTreeHostImplClient* client_; |
632 TaskRunnerProvider* task_runner_provider_; | 632 TaskRunnerProvider* task_runner_provider_; |
633 | 633 |
634 BeginFrameTracker current_begin_frame_tracker_; | 634 BeginFrameTracker current_begin_frame_tracker_; |
635 | 635 |
636 private: | 636 private: |
| 637 // Transforms viewport start point and scroll delta to local start point and |
| 638 // local delta, respectively. If the transformation of either the start or end |
| 639 // point of a scroll is clipped, the function returns false. |
| 640 bool CalculateLocalScrollDeltaAndStartPoint( |
| 641 const ScrollNode& scroll_node, |
| 642 const gfx::PointF& viewport_point, |
| 643 const gfx::Vector2dF& viewport_delta, |
| 644 const ScrollTree& scroll_tree, |
| 645 gfx::Vector2dF* out_local_scroll_delta, |
| 646 gfx::PointF* out_local_start_point = nullptr); |
637 gfx::Vector2dF ScrollNodeWithViewportSpaceDelta( | 647 gfx::Vector2dF ScrollNodeWithViewportSpaceDelta( |
638 ScrollNode* scroll_node, | 648 ScrollNode* scroll_node, |
639 const gfx::PointF& viewport_point, | 649 const gfx::PointF& viewport_point, |
640 const gfx::Vector2dF& viewport_delta, | 650 const gfx::Vector2dF& viewport_delta, |
641 ScrollTree* scroll_tree); | 651 ScrollTree* scroll_tree); |
642 | 652 |
643 void CleanUpTileManagerAndUIResources(); | 653 void CleanUpTileManagerAndUIResources(); |
644 void CreateTileManagerResources(); | 654 void CreateTileManagerResources(); |
645 void ReleaseTreeResources(); | 655 void ReleaseTreeResources(); |
646 void ReleaseTileResources(); | 656 void ReleaseTileResources(); |
(...skipping 11 matching lines...) Expand all Loading... |
658 void UpdateTreeResourcesForGpuRasterizationIfNeeded(); | 668 void UpdateTreeResourcesForGpuRasterizationIfNeeded(); |
659 | 669 |
660 Viewport* viewport() const { return viewport_.get(); } | 670 Viewport* viewport() const { return viewport_.get(); } |
661 | 671 |
662 InputHandler::ScrollStatus ScrollBeginImpl( | 672 InputHandler::ScrollStatus ScrollBeginImpl( |
663 ScrollState* scroll_state, | 673 ScrollState* scroll_state, |
664 ScrollNode* scrolling_node, | 674 ScrollNode* scrolling_node, |
665 InputHandler::ScrollInputType type); | 675 InputHandler::ScrollInputType type); |
666 bool IsInitialScrollHitTestReliable(LayerImpl* layer, const gfx::PointF&); | 676 bool IsInitialScrollHitTestReliable(LayerImpl* layer, const gfx::PointF&); |
667 void DistributeScrollDelta(ScrollState* scroll_state); | 677 void DistributeScrollDelta(ScrollState* scroll_state); |
| 678 bool CanConsumeDelta(ScrollNode* scroll_node, |
| 679 const ScrollState& scroll_state); |
668 | 680 |
669 bool AnimatePageScale(base::TimeTicks monotonic_time); | 681 bool AnimatePageScale(base::TimeTicks monotonic_time); |
670 bool AnimateScrollbars(base::TimeTicks monotonic_time); | 682 bool AnimateScrollbars(base::TimeTicks monotonic_time); |
671 bool AnimateBrowserControls(base::TimeTicks monotonic_time); | 683 bool AnimateBrowserControls(base::TimeTicks monotonic_time); |
672 | 684 |
673 void UpdateTileManagerMemoryPolicy(const ManagedMemoryPolicy& policy); | 685 void UpdateTileManagerMemoryPolicy(const ManagedMemoryPolicy& policy); |
674 | 686 |
675 // This function should only be called from PrepareToDraw, as DidDrawAllLayers | 687 // This function should only be called from PrepareToDraw, as DidDrawAllLayers |
676 // must be called if this helper function is called. Returns DRAW_SUCCESS if | 688 // must be called if this helper function is called. Returns DRAW_SUCCESS if |
677 // the frame should be drawn. | 689 // the frame should be drawn. |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
882 bool touchpad_and_wheel_scroll_latching_enabled_; | 894 bool touchpad_and_wheel_scroll_latching_enabled_; |
883 | 895 |
884 ImplThreadPhase impl_thread_phase_; | 896 ImplThreadPhase impl_thread_phase_; |
885 | 897 |
886 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl); | 898 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl); |
887 }; | 899 }; |
888 | 900 |
889 } // namespace cc | 901 } // namespace cc |
890 | 902 |
891 #endif // CC_TREES_LAYER_TREE_HOST_IMPL_H_ | 903 #endif // CC_TREES_LAYER_TREE_HOST_IMPL_H_ |
OLD | NEW |