| 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 #include "cc/trees/layer_tree_host_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 3000 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3011 | 3011 |
| 3012 class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate { | 3012 class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate { |
| 3013 public: | 3013 public: |
| 3014 TestScrollOffsetDelegate() | 3014 TestScrollOffsetDelegate() |
| 3015 : page_scale_factor_(0.f), | 3015 : page_scale_factor_(0.f), |
| 3016 min_page_scale_factor_(-1.f), | 3016 min_page_scale_factor_(-1.f), |
| 3017 max_page_scale_factor_(-1.f) {} | 3017 max_page_scale_factor_(-1.f) {} |
| 3018 | 3018 |
| 3019 virtual ~TestScrollOffsetDelegate() {} | 3019 virtual ~TestScrollOffsetDelegate() {} |
| 3020 | 3020 |
| 3021 virtual void SetMaxScrollOffset( | |
| 3022 const gfx::Vector2dF& max_scroll_offset) OVERRIDE { | |
| 3023 max_scroll_offset_ = max_scroll_offset; | |
| 3024 } | |
| 3025 | |
| 3026 virtual void SetTotalScrollOffset(const gfx::Vector2dF& new_value) OVERRIDE { | |
| 3027 last_set_scroll_offset_ = new_value; | |
| 3028 } | |
| 3029 | |
| 3030 virtual gfx::Vector2dF GetTotalScrollOffset() OVERRIDE { | 3021 virtual gfx::Vector2dF GetTotalScrollOffset() OVERRIDE { |
| 3031 return getter_return_value_; | 3022 return getter_return_value_; |
| 3032 } | 3023 } |
| 3033 | 3024 |
| 3034 virtual bool IsExternalFlingActive() const OVERRIDE { return false; } | 3025 virtual bool IsExternalFlingActive() const OVERRIDE { return false; } |
| 3035 | 3026 |
| 3036 virtual void SetTotalPageScaleFactorAndLimits( | 3027 virtual void UpdateRootLayerState(const gfx::Vector2dF& total_scroll_offset, |
| 3037 float page_scale_factor, | 3028 const gfx::Vector2dF& max_scroll_offset, |
| 3038 float min_page_scale_factor, | 3029 const gfx::SizeF& scrollable_size, |
| 3039 float max_page_scale_factor) OVERRIDE { | 3030 float page_scale_factor, |
| 3031 float min_page_scale_factor, |
| 3032 float max_page_scale_factor) OVERRIDE { |
| 3033 DCHECK(total_scroll_offset.x() <= max_scroll_offset.x()); |
| 3034 DCHECK(total_scroll_offset.y() <= max_scroll_offset.y()); |
| 3035 last_set_scroll_offset_ = total_scroll_offset; |
| 3036 max_scroll_offset_ = max_scroll_offset; |
| 3037 scrollable_size_ = scrollable_size; |
| 3040 page_scale_factor_ = page_scale_factor; | 3038 page_scale_factor_ = page_scale_factor; |
| 3041 min_page_scale_factor_ = min_page_scale_factor; | 3039 min_page_scale_factor_ = min_page_scale_factor; |
| 3042 max_page_scale_factor_ = max_page_scale_factor; | 3040 max_page_scale_factor_ = max_page_scale_factor; |
| 3043 } | 3041 } |
| 3044 | 3042 |
| 3045 virtual void SetScrollableSize(const gfx::SizeF& scrollable_size) OVERRIDE { | |
| 3046 scrollable_size_ = scrollable_size; | |
| 3047 } | |
| 3048 | |
| 3049 gfx::Vector2dF last_set_scroll_offset() { | 3043 gfx::Vector2dF last_set_scroll_offset() { |
| 3050 return last_set_scroll_offset_; | 3044 return last_set_scroll_offset_; |
| 3051 } | 3045 } |
| 3052 | 3046 |
| 3053 void set_getter_return_value(const gfx::Vector2dF& value) { | 3047 void set_getter_return_value(const gfx::Vector2dF& value) { |
| 3054 getter_return_value_ = value; | 3048 getter_return_value_ = value; |
| 3055 } | 3049 } |
| 3056 | 3050 |
| 3057 gfx::Vector2dF max_scroll_offset() const { | 3051 gfx::Vector2dF max_scroll_offset() const { |
| 3058 return max_scroll_offset_; | 3052 return max_scroll_offset_; |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3115 host_impl_->active_tree()->SetPageScaleDelta(1.5f); | 3109 host_impl_->active_tree()->SetPageScaleDelta(1.5f); |
| 3116 EXPECT_EQ(3.f, scroll_delegate.page_scale_factor()); | 3110 EXPECT_EQ(3.f, scroll_delegate.page_scale_factor()); |
| 3117 EXPECT_EQ(0.5f, scroll_delegate.min_page_scale_factor()); | 3111 EXPECT_EQ(0.5f, scroll_delegate.min_page_scale_factor()); |
| 3118 EXPECT_EQ(4.f, scroll_delegate.max_page_scale_factor()); | 3112 EXPECT_EQ(4.f, scroll_delegate.max_page_scale_factor()); |
| 3119 host_impl_->active_tree()->SetPageScaleDelta(1.f); | 3113 host_impl_->active_tree()->SetPageScaleDelta(1.f); |
| 3120 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f); | 3114 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f); |
| 3121 EXPECT_EQ(1.f, scroll_delegate.page_scale_factor()); | 3115 EXPECT_EQ(1.f, scroll_delegate.page_scale_factor()); |
| 3122 EXPECT_EQ(0.5f, scroll_delegate.min_page_scale_factor()); | 3116 EXPECT_EQ(0.5f, scroll_delegate.min_page_scale_factor()); |
| 3123 EXPECT_EQ(4.f, scroll_delegate.max_page_scale_factor()); | 3117 EXPECT_EQ(4.f, scroll_delegate.max_page_scale_factor()); |
| 3124 | 3118 |
| 3119 // The pinch gesture doesn't put the delegate into a state where the scroll |
| 3120 // offset is outside of the scroll range. (this is verified by DCHECKs in the |
| 3121 // delegate). |
| 3122 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture); |
| 3123 host_impl_->PinchGestureBegin(); |
| 3124 host_impl_->PinchGestureUpdate(2.f, gfx::Point()); |
| 3125 host_impl_->PinchGestureUpdate(.5f, gfx::Point()); |
| 3126 host_impl_->PinchGestureEnd(); |
| 3127 host_impl_->ScrollEnd(); |
| 3128 |
| 3125 // Scrolling should be relative to the offset as returned by the delegate. | 3129 // Scrolling should be relative to the offset as returned by the delegate. |
| 3126 gfx::Vector2dF scroll_delta(0.f, 10.f); | 3130 gfx::Vector2dF scroll_delta(0.f, 10.f); |
| 3127 gfx::Vector2dF current_offset(7.f, 8.f); | 3131 gfx::Vector2dF current_offset(7.f, 8.f); |
| 3128 | 3132 |
| 3129 scroll_delegate.set_getter_return_value(current_offset); | 3133 scroll_delegate.set_getter_return_value(current_offset); |
| 3130 EXPECT_EQ(InputHandler::ScrollStarted, | 3134 EXPECT_EQ(InputHandler::ScrollStarted, |
| 3131 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture)); | 3135 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture)); |
| 3132 | 3136 |
| 3133 host_impl_->ScrollBy(gfx::Point(), scroll_delta); | 3137 host_impl_->ScrollBy(gfx::Point(), scroll_delta); |
| 3134 EXPECT_EQ(current_offset + scroll_delta, | 3138 EXPECT_EQ(current_offset + scroll_delta, |
| 3135 scroll_delegate.last_set_scroll_offset()); | 3139 scroll_delegate.last_set_scroll_offset()); |
| 3136 | 3140 |
| 3137 current_offset = gfx::Vector2dF(42.f, 41.f); | 3141 current_offset = gfx::Vector2dF(42.f, 41.f); |
| 3138 scroll_delegate.set_getter_return_value(current_offset); | 3142 scroll_delegate.set_getter_return_value(current_offset); |
| 3139 host_impl_->ScrollBy(gfx::Point(), scroll_delta); | 3143 host_impl_->ScrollBy(gfx::Point(), scroll_delta); |
| 3140 EXPECT_EQ(current_offset + scroll_delta, | 3144 EXPECT_EQ(current_offset + scroll_delta, |
| 3141 scroll_delegate.last_set_scroll_offset()); | 3145 scroll_delegate.last_set_scroll_offset()); |
| 3142 host_impl_->ScrollEnd(); | 3146 host_impl_->ScrollEnd(); |
| 3147 scroll_delegate.set_getter_return_value(gfx::Vector2dF()); |
| 3143 | 3148 |
| 3144 // Forces a full tree synchronization and ensures that the scroll delegate | 3149 // Forces a full tree synchronization and ensures that the scroll delegate |
| 3145 // sees the correct size of the new tree. | 3150 // sees the correct size of the new tree. |
| 3146 gfx::Size new_size(42, 24); | 3151 gfx::Size new_size(42, 24); |
| 3147 host_impl_->CreatePendingTree(); | 3152 host_impl_->CreatePendingTree(); |
| 3148 CreateScrollAndContentsLayers(host_impl_->pending_tree(), new_size); | 3153 CreateScrollAndContentsLayers(host_impl_->pending_tree(), new_size); |
| 3149 host_impl_->ActivatePendingTree(); | 3154 host_impl_->ActivatePendingTree(); |
| 3150 EXPECT_EQ(new_size, scroll_delegate.scrollable_size()); | 3155 EXPECT_EQ(new_size, scroll_delegate.scrollable_size()); |
| 3151 | 3156 |
| 3152 // Un-setting the delegate should propagate the delegate's current offset to | 3157 // Un-setting the delegate should propagate the delegate's current offset to |
| (...skipping 3433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6586 FakePictureLayerImpl* active_mask_content = | 6591 FakePictureLayerImpl* active_mask_content = |
| 6587 static_cast<FakePictureLayerImpl*>( | 6592 static_cast<FakePictureLayerImpl*>( |
| 6588 host_impl_->active_tree()->root_layer()->children()[0]->mask_layer()); | 6593 host_impl_->active_tree()->root_layer()->children()[0]->mask_layer()); |
| 6589 gfx::Rect r2 = active_mask_content->visible_rect_for_tile_priority(); | 6594 gfx::Rect r2 = active_mask_content->visible_rect_for_tile_priority(); |
| 6590 | 6595 |
| 6591 ASSERT_TRUE(!r2.IsEmpty()); | 6596 ASSERT_TRUE(!r2.IsEmpty()); |
| 6592 } | 6597 } |
| 6593 | 6598 |
| 6594 } // namespace | 6599 } // namespace |
| 6595 } // namespace cc | 6600 } // namespace cc |
| OLD | NEW |