Chromium Code Reviews| 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/location.h" | 7 #include "base/location.h" |
| 8 #include "base/memory/weak_ptr.h" | 8 #include "base/memory/weak_ptr.h" |
| 9 #include "base/single_thread_task_runner.h" | 9 #include "base/single_thread_task_runner.h" |
| 10 #include "base/threading/thread_task_runner_handle.h" | 10 #include "base/threading/thread_task_runner_handle.h" |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 490 } | 490 } |
| 491 | 491 |
| 492 void AfterTest() override {} | 492 void AfterTest() override {} |
| 493 | 493 |
| 494 private: | 494 private: |
| 495 gfx::Vector2dF scroll_amount_; | 495 gfx::Vector2dF scroll_amount_; |
| 496 }; | 496 }; |
| 497 | 497 |
| 498 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestFractionalScroll); | 498 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestFractionalScroll); |
| 499 | 499 |
| 500 class LayerTreeHostScrollTestScrollSnapping : public LayerTreeHostScrollTest { | |
| 501 public: | |
| 502 LayerTreeHostScrollTestScrollSnapping() : scroll_amount_(1.75, 0) {} | |
| 503 | |
| 504 void SetupTree() override { | |
| 505 LayerTreeHostScrollTest::SetupTree(); | |
| 506 layer_tree_host() | |
| 507 ->outer_viewport_scroll_layer() | |
| 508 ->scroll_clip_layer() | |
| 509 ->SetForceRenderSurfaceForTesting(true); | |
| 510 gfx::Transform translate; | |
| 511 translate.Translate(0.25f, 0.f); | |
| 512 layer_tree_host() | |
| 513 ->outer_viewport_scroll_layer() | |
| 514 ->scroll_clip_layer() | |
| 515 ->SetTransform(translate); | |
| 516 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.1f, 100.f); | |
| 517 } | |
| 518 | |
| 519 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | |
| 520 | |
| 521 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { | |
| 522 LayerImpl* scroll_layer = impl->OuterViewportScrollLayer(); | |
| 523 gfx::Transform translate; | |
| 524 | |
| 525 // Check that screen space transform of the scrollable layer is correctly | |
| 526 // snapped to integers. | |
| 527 switch (impl->active_tree()->source_frame_number()) { | |
| 528 case 0: | |
| 529 translate.Translate(0, 0); | |
| 530 EXPECT_EQ(translate, | |
|
sunxd
2016/05/17 18:19:45
I'm not sure if there is a better variable to comp
ajuma
2016/05/17 19:18:51
You could compare to the identity (either by compa
sunxd
2016/05/17 19:38:01
Done.
| |
| 531 scroll_layer->draw_properties().screen_space_transform); | |
| 532 PostSetNeedsCommitToMainThread(); | |
| 533 break; | |
| 534 case 1: | |
| 535 translate.Translate(-2, 0); | |
| 536 EXPECT_EQ(translate, | |
| 537 scroll_layer->draw_properties().screen_space_transform); | |
| 538 PostSetNeedsCommitToMainThread(); | |
| 539 break; | |
| 540 case 2: | |
| 541 translate.Translate(-3, 0); | |
| 542 EXPECT_EQ(translate, | |
| 543 scroll_layer->draw_properties().screen_space_transform); | |
| 544 EndTest(); | |
| 545 break; | |
| 546 } | |
| 547 scroll_layer->ScrollBy(scroll_amount_); | |
| 548 } | |
| 549 | |
| 550 void AfterTest() override {} | |
| 551 | |
| 552 private: | |
| 553 gfx::Vector2dF scroll_amount_; | |
| 554 }; | |
| 555 | |
| 556 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollSnapping); | |
| 557 | |
| 500 class LayerTreeHostScrollTestCaseWithChild : public LayerTreeHostScrollTest { | 558 class LayerTreeHostScrollTestCaseWithChild : public LayerTreeHostScrollTest { |
| 501 public: | 559 public: |
| 502 LayerTreeHostScrollTestCaseWithChild() | 560 LayerTreeHostScrollTestCaseWithChild() |
| 503 : initial_offset_(10, 20), | 561 : initial_offset_(10, 20), |
| 504 javascript_scroll_(40, 5), | 562 javascript_scroll_(40, 5), |
| 505 scroll_amount_(2, -1), | 563 scroll_amount_(2, -1), |
| 506 num_scrolls_(0) {} | 564 num_scrolls_(0) {} |
| 507 | 565 |
| 508 void SetupTree() override { | 566 void SetupTree() override { |
| 509 layer_tree_host()->SetDeviceScaleFactor(device_scale_factor_); | 567 layer_tree_host()->SetDeviceScaleFactor(device_scale_factor_); |
| (...skipping 941 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1451 RunTest(CompositorMode::THREADED, false); | 1509 RunTest(CompositorMode::THREADED, false); |
| 1452 } | 1510 } |
| 1453 | 1511 |
| 1454 TEST_F(LayerTreeHostScrollTestLayerStructureChange, ScrollDestroyWholeTree) { | 1512 TEST_F(LayerTreeHostScrollTestLayerStructureChange, ScrollDestroyWholeTree) { |
| 1455 scroll_destroy_whole_tree_ = true; | 1513 scroll_destroy_whole_tree_ = true; |
| 1456 RunTest(CompositorMode::THREADED, false); | 1514 RunTest(CompositorMode::THREADED, false); |
| 1457 } | 1515 } |
| 1458 | 1516 |
| 1459 } // namespace | 1517 } // namespace |
| 1460 } // namespace cc | 1518 } // namespace cc |
| OLD | NEW |