Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(332)

Side by Side Diff: cc/trees/layer_tree_host_unittest_picture.cc

Issue 2629233002: cc: Remove separate x/y raster scales. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "cc/test/fake_content_layer_client.h" 7 #include "cc/test/fake_content_layer_client.h"
8 #include "cc/test/fake_picture_layer.h" 8 #include "cc/test/fake_picture_layer.h"
9 #include "cc/test/fake_picture_layer_impl.h" 9 #include "cc/test/fake_picture_layer_impl.h"
10 #include "cc/test/layer_tree_test.h" 10 #include "cc/test/layer_tree_test.h"
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 451
452 void WillActivateTreeOnThread(LayerTreeHostImpl* impl) override { 452 void WillActivateTreeOnThread(LayerTreeHostImpl* impl) override {
453 LayerImpl* gchild = impl->sync_tree()->LayerById(picture_->id()); 453 LayerImpl* gchild = impl->sync_tree()->LayerById(picture_->id());
454 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild); 454 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild);
455 ready_to_draw_ = false; 455 ready_to_draw_ = false;
456 456
457 switch (frame_) { 457 switch (frame_) {
458 case 0: 458 case 0:
459 // On 1st commit the pending layer has tilings. 459 // On 1st commit the pending layer has tilings.
460 ASSERT_EQ(1u, picture->tilings()->num_tilings()); 460 ASSERT_EQ(1u, picture->tilings()->num_tilings());
461 EXPECT_EQ(1.f, picture->tilings()->tiling_at(0)->contents_scale_key()); 461 EXPECT_EQ(1.f, picture->tilings()->tiling_at(0)->contents_scale());
462 break; 462 break;
463 case 1: 463 case 1:
464 // On 2nd commit, the pending layer is transparent, so has a stale 464 // On 2nd commit, the pending layer is transparent, so has a stale
465 // value. 465 // value.
466 ASSERT_EQ(1u, picture->tilings()->num_tilings()); 466 ASSERT_EQ(1u, picture->tilings()->num_tilings());
467 EXPECT_EQ(1.f, picture->tilings()->tiling_at(0)->contents_scale_key()); 467 EXPECT_EQ(1.f, picture->tilings()->tiling_at(0)->contents_scale());
468 break; 468 break;
469 case 2: 469 case 2:
470 // On 3rd commit, the pending layer is visible again, so has tilings and 470 // On 3rd commit, the pending layer is visible again, so has tilings and
471 // is updated for the pinch. 471 // is updated for the pinch.
472 ASSERT_EQ(1u, picture->tilings()->num_tilings()); 472 ASSERT_EQ(1u, picture->tilings()->num_tilings());
473 EXPECT_EQ(2.f, picture->tilings()->tiling_at(0)->contents_scale_key()); 473 EXPECT_EQ(2.f, picture->tilings()->tiling_at(0)->contents_scale());
474 } 474 }
475 } 475 }
476 476
477 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { 477 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
478 LayerImpl* gchild = impl->active_tree()->LayerById(picture_->id()); 478 LayerImpl* gchild = impl->active_tree()->LayerById(picture_->id());
479 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild); 479 FakePictureLayerImpl* picture = static_cast<FakePictureLayerImpl*>(gchild);
480 480
481 if (frame_ != last_frame_drawn_) 481 if (frame_ != last_frame_drawn_)
482 draws_in_frame_ = 0; 482 draws_in_frame_ = 0;
483 ++draws_in_frame_; 483 ++draws_in_frame_;
484 last_frame_drawn_ = frame_; 484 last_frame_drawn_ = frame_;
485 485
486 switch (frame_) { 486 switch (frame_) {
487 case 0: 487 case 0:
488 if (draws_in_frame_ == 1) { 488 if (draws_in_frame_ == 1) {
489 // On 1st commit the layer has tilings. 489 // On 1st commit the layer has tilings.
490 EXPECT_GT(picture->tilings()->num_tilings(), 0u); 490 EXPECT_GT(picture->tilings()->num_tilings(), 0u);
491 EXPECT_EQ(1.f, picture->HighResTiling()->contents_scale_key()); 491 EXPECT_EQ(1.f, picture->HighResTiling()->contents_scale());
492 492
493 // Pinch zoom in to change the scale on the active tree. 493 // Pinch zoom in to change the scale on the active tree.
494 impl->PinchGestureBegin(); 494 impl->PinchGestureBegin();
495 impl->PinchGestureUpdate(2.f, gfx::Point(1, 1)); 495 impl->PinchGestureUpdate(2.f, gfx::Point(1, 1));
496 impl->PinchGestureEnd(); 496 impl->PinchGestureEnd();
497 } else if (picture->tilings()->num_tilings() == 1) { 497 } else if (picture->tilings()->num_tilings() == 1) {
498 // If the pinch gesture caused a commit we could get here with a 498 // If the pinch gesture caused a commit we could get here with a
499 // pending tree. 499 // pending tree.
500 EXPECT_FALSE(impl->pending_tree()); 500 EXPECT_FALSE(impl->pending_tree());
501 EXPECT_EQ(2.f, picture->HighResTiling()->contents_scale_key()); 501 EXPECT_EQ(2.f, picture->HighResTiling()->contents_scale());
502 502
503 // Need to wait for ready to draw here so that the pinch is 503 // Need to wait for ready to draw here so that the pinch is
504 // entirely complete, otherwise another draw might come in before 504 // entirely complete, otherwise another draw might come in before
505 // the commit occurs. 505 // the commit occurs.
506 if (ready_to_draw_) { 506 if (ready_to_draw_) {
507 ++frame_; 507 ++frame_;
508 MainThreadTaskRunner()->PostTask( 508 MainThreadTaskRunner()->PostTask(
509 FROM_HERE, 509 FROM_HERE,
510 base::Bind( 510 base::Bind(
511 &LayerTreeHostPictureTestRSLLMembershipWithScale::NextStep, 511 &LayerTreeHostPictureTestRSLLMembershipWithScale::NextStep,
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 FakePictureLayerImpl* will_change_layer = 609 FakePictureLayerImpl* will_change_layer =
610 static_cast<FakePictureLayerImpl*>( 610 static_cast<FakePictureLayerImpl*>(
611 impl->active_tree()->LayerById(will_change_layer_->id())); 611 impl->active_tree()->LayerById(will_change_layer_->id()));
612 FakePictureLayerImpl* normal_layer = static_cast<FakePictureLayerImpl*>( 612 FakePictureLayerImpl* normal_layer = static_cast<FakePictureLayerImpl*>(
613 impl->active_tree()->LayerById(normal_layer_->id())); 613 impl->active_tree()->LayerById(normal_layer_->id()));
614 614
615 switch (impl->sync_tree()->source_frame_number()) { 615 switch (impl->sync_tree()->source_frame_number()) {
616 case 0: 616 case 0:
617 // On first commit, both layers are at the default scale. 617 // On first commit, both layers are at the default scale.
618 ASSERT_EQ(1u, will_change_layer->tilings()->num_tilings()); 618 ASSERT_EQ(1u, will_change_layer->tilings()->num_tilings());
619 EXPECT_EQ( 619 EXPECT_EQ(1.f,
620 1.f, 620 will_change_layer->tilings()->tiling_at(0)->contents_scale());
621 will_change_layer->tilings()->tiling_at(0)->contents_scale_key());
622 ASSERT_EQ(1u, normal_layer->tilings()->num_tilings()); 621 ASSERT_EQ(1u, normal_layer->tilings()->num_tilings());
623 EXPECT_EQ(1.f, 622 EXPECT_EQ(1.f, normal_layer->tilings()->tiling_at(0)->contents_scale());
624 normal_layer->tilings()->tiling_at(0)->contents_scale_key());
625 623
626 MainThreadTaskRunner()->PostTask( 624 MainThreadTaskRunner()->PostTask(
627 FROM_HERE, 625 FROM_HERE,
628 base::Bind( 626 base::Bind(
629 &LayerTreeHostPictureTestForceRecalculateScales::ScaleRootUp, 627 &LayerTreeHostPictureTestForceRecalculateScales::ScaleRootUp,
630 base::Unretained(this))); 628 base::Unretained(this)));
631 break; 629 break;
632 case 1: 630 case 1:
633 // On 2nd commit after scaling up to 2, the normal layer will adjust its 631 // On 2nd commit after scaling up to 2, the normal layer will adjust its
634 // scale and the will change layer should not (as it is will change. 632 // scale and the will change layer should not (as it is will change.
635 ASSERT_EQ(1u, will_change_layer->tilings()->num_tilings()); 633 ASSERT_EQ(1u, will_change_layer->tilings()->num_tilings());
636 EXPECT_EQ( 634 EXPECT_EQ(1.f,
637 1.f, 635 will_change_layer->tilings()->tiling_at(0)->contents_scale());
638 will_change_layer->tilings()->tiling_at(0)->contents_scale_key());
639 ASSERT_EQ(1u, normal_layer->tilings()->num_tilings()); 636 ASSERT_EQ(1u, normal_layer->tilings()->num_tilings());
640 EXPECT_EQ(2.f, 637 EXPECT_EQ(2.f, normal_layer->tilings()->tiling_at(0)->contents_scale());
641 normal_layer->tilings()->tiling_at(0)->contents_scale_key());
642 638
643 MainThreadTaskRunner()->PostTask( 639 MainThreadTaskRunner()->PostTask(
644 FROM_HERE, 640 FROM_HERE,
645 base::Bind(&LayerTreeHostPictureTestForceRecalculateScales:: 641 base::Bind(&LayerTreeHostPictureTestForceRecalculateScales::
646 ScaleRootUpAndRecalculateScales, 642 ScaleRootUpAndRecalculateScales,
647 base::Unretained(this))); 643 base::Unretained(this)));
648 break; 644 break;
649 case 2: 645 case 2:
650 // On 3rd commit, both layers should adjust scales due to forced 646 // On 3rd commit, both layers should adjust scales due to forced
651 // recalculating. 647 // recalculating.
652 ASSERT_EQ(1u, will_change_layer->tilings()->num_tilings()); 648 ASSERT_EQ(1u, will_change_layer->tilings()->num_tilings());
653 EXPECT_EQ( 649 EXPECT_EQ(4.f,
654 4.f, 650 will_change_layer->tilings()->tiling_at(0)->contents_scale());
655 will_change_layer->tilings()->tiling_at(0)->contents_scale_key());
656 ASSERT_EQ(1u, normal_layer->tilings()->num_tilings()); 651 ASSERT_EQ(1u, normal_layer->tilings()->num_tilings());
657 EXPECT_EQ(4.f, 652 EXPECT_EQ(4.f, normal_layer->tilings()->tiling_at(0)->contents_scale());
658 normal_layer->tilings()->tiling_at(0)->contents_scale_key());
659 EndTest(); 653 EndTest();
660 break; 654 break;
661 } 655 }
662 } 656 }
663 657
664 void ScaleRootUp() { 658 void ScaleRootUp() {
665 gfx::Transform transform; 659 gfx::Transform transform;
666 transform.Scale(2, 2); 660 transform.Scale(2, 2);
667 layer_tree_host()->GetLayerTree()->root_layer()->SetTransform(transform); 661 layer_tree_host()->GetLayerTree()->root_layer()->SetTransform(transform);
668 } 662 }
669 663
670 void ScaleRootUpAndRecalculateScales() { 664 void ScaleRootUpAndRecalculateScales() {
671 gfx::Transform transform; 665 gfx::Transform transform;
672 transform.Scale(4, 4); 666 transform.Scale(4, 4);
673 layer_tree_host()->GetLayerTree()->root_layer()->SetTransform(transform); 667 layer_tree_host()->GetLayerTree()->root_layer()->SetTransform(transform);
674 layer_tree_host()->SetNeedsRecalculateRasterScales(); 668 layer_tree_host()->SetNeedsRecalculateRasterScales();
675 } 669 }
676 670
677 void AfterTest() override {} 671 void AfterTest() override {}
678 672
679 scoped_refptr<FakePictureLayer> will_change_layer_; 673 scoped_refptr<FakePictureLayer> will_change_layer_;
680 scoped_refptr<FakePictureLayer> normal_layer_; 674 scoped_refptr<FakePictureLayer> normal_layer_;
681 }; 675 };
682 676
683 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostPictureTestForceRecalculateScales); 677 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostPictureTestForceRecalculateScales);
684 678
685 } // namespace 679 } // namespace
686 } // namespace cc 680 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698