OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include "base/memory/weak_ptr.h" | 7 #include "base/memory/weak_ptr.h" |
8 #include "cc/layers/layer.h" | 8 #include "cc/layers/layer.h" |
9 #include "cc/layers/layer_impl.h" | 9 #include "cc/layers/layer_impl.h" |
10 #include "cc/layers/picture_layer.h" | 10 #include "cc/layers/picture_layer.h" |
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 | 422 |
423 // Check that a fractional scroll delta is correctly accumulated over | 423 // Check that a fractional scroll delta is correctly accumulated over |
424 // multiple commits. | 424 // multiple commits. |
425 switch (impl->active_tree()->source_frame_number()) { | 425 switch (impl->active_tree()->source_frame_number()) { |
426 case 0: | 426 case 0: |
427 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), gfx::Vector2d(0, 0)); | 427 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), gfx::Vector2d(0, 0)); |
428 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d(0, 0)); | 428 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2d(0, 0)); |
429 PostSetNeedsCommitToMainThread(); | 429 PostSetNeedsCommitToMainThread(); |
430 break; | 430 break; |
431 case 1: | 431 case 1: |
432 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), | 432 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), scroll_amount_); |
433 gfx::ToFlooredVector2d(scroll_amount_)); | 433 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2dF()); |
434 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), | |
435 gfx::Vector2dF(fmod(scroll_amount_.x(), 1.0f), 0.0f)); | |
436 PostSetNeedsCommitToMainThread(); | 434 PostSetNeedsCommitToMainThread(); |
437 break; | 435 break; |
438 case 2: | 436 case 2: |
439 EXPECT_VECTOR_EQ( | 437 EXPECT_VECTOR_EQ(scroll_layer->BaseScrollOffset(), |
440 scroll_layer->BaseScrollOffset(), | 438 (scroll_amount_ + scroll_amount_)); |
441 gfx::ToFlooredVector2d(scroll_amount_ + scroll_amount_)); | 439 EXPECT_VECTOR_EQ(scroll_layer->ScrollDelta(), gfx::Vector2dF()); |
442 EXPECT_VECTOR_EQ( | |
443 scroll_layer->ScrollDelta(), | |
444 gfx::Vector2dF(fmod(2.0f * scroll_amount_.x(), 1.0f), 0.0f)); | |
445 EndTest(); | 440 EndTest(); |
446 break; | 441 break; |
447 } | 442 } |
448 scroll_layer->ScrollBy(scroll_amount_); | 443 scroll_layer->ScrollBy(scroll_amount_); |
449 } | 444 } |
450 | 445 |
451 void AfterTest() override {} | 446 void AfterTest() override {} |
452 | 447 |
453 private: | 448 private: |
454 gfx::Vector2dF scroll_amount_; | 449 gfx::Vector2dF scroll_amount_; |
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1037 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 1032 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
1038 | 1033 |
1039 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { | 1034 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { |
1040 LayerImpl* root = impl->active_tree()->root_layer(); | 1035 LayerImpl* root = impl->active_tree()->root_layer(); |
1041 LayerImpl* scroll_layer = root->children()[0]; | 1036 LayerImpl* scroll_layer = root->children()[0]; |
1042 scroll_layer->SetScrollClipLayer(root->id()); | 1037 scroll_layer->SetScrollClipLayer(root->id()); |
1043 | 1038 |
1044 // Set max_scroll_offset = (100, 100). | 1039 // Set max_scroll_offset = (100, 100). |
1045 scroll_layer->SetBounds( | 1040 scroll_layer->SetBounds( |
1046 gfx::Size(root->bounds().width() + 100, root->bounds().height() + 100)); | 1041 gfx::Size(root->bounds().width() + 100, root->bounds().height() + 100)); |
1047 EXPECT_EQ(InputHandler::ScrollStarted, | 1042 EXPECT_EQ( |
1048 scroll_layer->TryScroll(gfx::PointF(0.0f, 1.0f), | 1043 InputHandler::ScrollStarted, |
1049 InputHandler::Gesture)); | 1044 scroll_layer->TryScroll(gfx::PointF(0.0f, 1.0f), InputHandler::Gesture, |
| 1045 ScrollBlocksOnNone)); |
1050 | 1046 |
1051 // Set max_scroll_offset = (0, 0). | 1047 // Set max_scroll_offset = (0, 0). |
1052 scroll_layer->SetBounds(root->bounds()); | 1048 scroll_layer->SetBounds(root->bounds()); |
1053 EXPECT_EQ(InputHandler::ScrollIgnored, | 1049 EXPECT_EQ( |
1054 scroll_layer->TryScroll(gfx::PointF(0.0f, 1.0f), | 1050 InputHandler::ScrollIgnored, |
1055 InputHandler::Gesture)); | 1051 scroll_layer->TryScroll(gfx::PointF(0.0f, 1.0f), InputHandler::Gesture, |
| 1052 ScrollBlocksOnNone)); |
1056 | 1053 |
1057 // Set max_scroll_offset = (-100, -100). | 1054 // Set max_scroll_offset = (-100, -100). |
1058 scroll_layer->SetBounds(gfx::Size()); | 1055 scroll_layer->SetBounds(gfx::Size()); |
1059 EXPECT_EQ(InputHandler::ScrollIgnored, | 1056 EXPECT_EQ( |
1060 scroll_layer->TryScroll(gfx::PointF(0.0f, 1.0f), | 1057 InputHandler::ScrollIgnored, |
1061 InputHandler::Gesture)); | 1058 scroll_layer->TryScroll(gfx::PointF(0.0f, 1.0f), InputHandler::Gesture, |
| 1059 ScrollBlocksOnNone)); |
1062 | 1060 |
1063 EndTest(); | 1061 EndTest(); |
1064 } | 1062 } |
1065 | 1063 |
1066 void AfterTest() override {} | 1064 void AfterTest() override {} |
1067 }; | 1065 }; |
1068 | 1066 |
1069 SINGLE_AND_MULTI_THREAD_TEST_F( | 1067 SINGLE_AND_MULTI_THREAD_TEST_F( |
1070 LayerTreeHostScrollTestScrollZeroMaxScrollOffset); | 1068 LayerTreeHostScrollTestScrollZeroMaxScrollOffset); |
1071 | 1069 |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1231 RunTest(true, false, true); | 1229 RunTest(true, false, true); |
1232 } | 1230 } |
1233 | 1231 |
1234 TEST_F(LayerTreeHostScrollTestLayerStructureChange, ScrollDestroyWholeTree) { | 1232 TEST_F(LayerTreeHostScrollTestLayerStructureChange, ScrollDestroyWholeTree) { |
1235 scroll_destroy_whole_tree_ = true; | 1233 scroll_destroy_whole_tree_ = true; |
1236 RunTest(true, false, true); | 1234 RunTest(true, false, true); |
1237 } | 1235 } |
1238 | 1236 |
1239 } // namespace | 1237 } // namespace |
1240 } // namespace cc | 1238 } // namespace cc |
OLD | NEW |