OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 *run = true; | 660 *run = true; |
661 } | 661 } |
662 | 662 |
663 TEST_F(LayerWithNullDelegateTest, SwitchLayerPreservesCCLayerState) { | 663 TEST_F(LayerWithNullDelegateTest, SwitchLayerPreservesCCLayerState) { |
664 scoped_ptr<Layer> l1(CreateLayer(LAYER_SOLID_COLOR)); | 664 scoped_ptr<Layer> l1(CreateLayer(LAYER_SOLID_COLOR)); |
665 l1->SetFillsBoundsOpaquely(true); | 665 l1->SetFillsBoundsOpaquely(true); |
666 l1->SetForceRenderSurface(true); | 666 l1->SetForceRenderSurface(true); |
667 l1->SetVisible(false); | 667 l1->SetVisible(false); |
668 l1->SetBounds(gfx::Rect(4, 5)); | 668 l1->SetBounds(gfx::Rect(4, 5)); |
669 | 669 |
670 EXPECT_EQ(gfx::Point3F(), l1->cc_layer()->transform_origin()); | 670 EXPECT_EQ(gfx::Point3F(), l1->cc_layer_for_testing()->transform_origin()); |
671 EXPECT_TRUE(l1->cc_layer()->DrawsContent()); | 671 EXPECT_TRUE(l1->cc_layer_for_testing()->DrawsContent()); |
672 EXPECT_TRUE(l1->cc_layer()->contents_opaque()); | 672 EXPECT_TRUE(l1->cc_layer_for_testing()->contents_opaque()); |
673 EXPECT_TRUE(l1->cc_layer()->force_render_surface()); | 673 EXPECT_TRUE(l1->cc_layer_for_testing()->force_render_surface()); |
674 EXPECT_TRUE(l1->cc_layer()->hide_layer_and_subtree()); | 674 EXPECT_TRUE(l1->cc_layer_for_testing()->hide_layer_and_subtree()); |
675 EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer()->bounds()); | 675 EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer_for_testing()->bounds()); |
676 | 676 |
677 cc::Layer* before_layer = l1->cc_layer(); | 677 cc::Layer* before_layer = l1->cc_layer_for_testing(); |
678 | 678 |
679 bool callback1_run = false; | 679 bool callback1_run = false; |
680 cc::TextureMailbox mailbox(gpu::Mailbox::Generate(), 0, 0); | 680 cc::TextureMailbox mailbox(gpu::Mailbox::Generate(), 0, 0); |
681 l1->SetTextureMailbox(mailbox, cc::SingleReleaseCallback::Create( | 681 l1->SetTextureMailbox(mailbox, cc::SingleReleaseCallback::Create( |
682 base::Bind(ReturnMailbox, &callback1_run)), | 682 base::Bind(ReturnMailbox, &callback1_run)), |
683 gfx::Size(10, 10)); | 683 gfx::Size(10, 10)); |
684 | 684 |
685 EXPECT_NE(before_layer, l1->cc_layer()); | 685 EXPECT_NE(before_layer, l1->cc_layer_for_testing()); |
686 | 686 |
687 EXPECT_EQ(gfx::Point3F(), l1->cc_layer()->transform_origin()); | 687 EXPECT_EQ(gfx::Point3F(), l1->cc_layer_for_testing()->transform_origin()); |
688 EXPECT_TRUE(l1->cc_layer()->DrawsContent()); | 688 EXPECT_TRUE(l1->cc_layer_for_testing()->DrawsContent()); |
689 EXPECT_TRUE(l1->cc_layer()->contents_opaque()); | 689 EXPECT_TRUE(l1->cc_layer_for_testing()->contents_opaque()); |
690 EXPECT_TRUE(l1->cc_layer()->force_render_surface()); | 690 EXPECT_TRUE(l1->cc_layer_for_testing()->force_render_surface()); |
691 EXPECT_TRUE(l1->cc_layer()->hide_layer_and_subtree()); | 691 EXPECT_TRUE(l1->cc_layer_for_testing()->hide_layer_and_subtree()); |
692 EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer()->bounds()); | 692 EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer_for_testing()->bounds()); |
693 EXPECT_FALSE(callback1_run); | 693 EXPECT_FALSE(callback1_run); |
694 | 694 |
695 bool callback2_run = false; | 695 bool callback2_run = false; |
696 mailbox = cc::TextureMailbox(gpu::Mailbox::Generate(), 0, 0); | 696 mailbox = cc::TextureMailbox(gpu::Mailbox::Generate(), 0, 0); |
697 l1->SetTextureMailbox(mailbox, cc::SingleReleaseCallback::Create( | 697 l1->SetTextureMailbox(mailbox, cc::SingleReleaseCallback::Create( |
698 base::Bind(ReturnMailbox, &callback2_run)), | 698 base::Bind(ReturnMailbox, &callback2_run)), |
699 gfx::Size(10, 10)); | 699 gfx::Size(10, 10)); |
700 EXPECT_TRUE(callback1_run); | 700 EXPECT_TRUE(callback1_run); |
701 EXPECT_FALSE(callback2_run); | 701 EXPECT_FALSE(callback2_run); |
702 | 702 |
703 // Show solid color instead. | 703 // Show solid color instead. |
704 l1->SetShowSolidColorContent(); | 704 l1->SetShowSolidColorContent(); |
705 EXPECT_EQ(gfx::Point3F(), l1->cc_layer()->transform_origin()); | 705 EXPECT_EQ(gfx::Point3F(), l1->cc_layer_for_testing()->transform_origin()); |
706 EXPECT_TRUE(l1->cc_layer()->DrawsContent()); | 706 EXPECT_TRUE(l1->cc_layer_for_testing()->DrawsContent()); |
707 EXPECT_TRUE(l1->cc_layer()->contents_opaque()); | 707 EXPECT_TRUE(l1->cc_layer_for_testing()->contents_opaque()); |
708 EXPECT_TRUE(l1->cc_layer()->force_render_surface()); | 708 EXPECT_TRUE(l1->cc_layer_for_testing()->force_render_surface()); |
709 EXPECT_TRUE(l1->cc_layer()->hide_layer_and_subtree()); | 709 EXPECT_TRUE(l1->cc_layer_for_testing()->hide_layer_and_subtree()); |
710 EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer()->bounds()); | 710 EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer_for_testing()->bounds()); |
711 EXPECT_TRUE(callback2_run); | 711 EXPECT_TRUE(callback2_run); |
712 | 712 |
713 before_layer = l1->cc_layer(); | 713 before_layer = l1->cc_layer_for_testing(); |
714 | 714 |
715 // Back to a texture, without changing the bounds of the layer or the texture. | 715 // Back to a texture, without changing the bounds of the layer or the texture. |
716 bool callback3_run = false; | 716 bool callback3_run = false; |
717 mailbox = cc::TextureMailbox(gpu::Mailbox::Generate(), 0, 0); | 717 mailbox = cc::TextureMailbox(gpu::Mailbox::Generate(), 0, 0); |
718 l1->SetTextureMailbox(mailbox, cc::SingleReleaseCallback::Create( | 718 l1->SetTextureMailbox(mailbox, cc::SingleReleaseCallback::Create( |
719 base::Bind(ReturnMailbox, &callback3_run)), | 719 base::Bind(ReturnMailbox, &callback3_run)), |
720 gfx::Size(10, 10)); | 720 gfx::Size(10, 10)); |
721 | 721 |
722 EXPECT_NE(before_layer, l1->cc_layer()); | 722 EXPECT_NE(before_layer, l1->cc_layer_for_testing()); |
723 | 723 |
724 EXPECT_EQ(gfx::Point3F(), l1->cc_layer()->transform_origin()); | 724 EXPECT_EQ(gfx::Point3F(), l1->cc_layer_for_testing()->transform_origin()); |
725 EXPECT_TRUE(l1->cc_layer()->DrawsContent()); | 725 EXPECT_TRUE(l1->cc_layer_for_testing()->DrawsContent()); |
726 EXPECT_TRUE(l1->cc_layer()->contents_opaque()); | 726 EXPECT_TRUE(l1->cc_layer_for_testing()->contents_opaque()); |
727 EXPECT_TRUE(l1->cc_layer()->force_render_surface()); | 727 EXPECT_TRUE(l1->cc_layer_for_testing()->force_render_surface()); |
728 EXPECT_TRUE(l1->cc_layer()->hide_layer_and_subtree()); | 728 EXPECT_TRUE(l1->cc_layer_for_testing()->hide_layer_and_subtree()); |
729 EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer()->bounds()); | 729 EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer_for_testing()->bounds()); |
730 EXPECT_FALSE(callback3_run); | 730 EXPECT_FALSE(callback3_run); |
731 | 731 |
732 // Release the on |l1| mailbox to clean up the test. | 732 // Release the on |l1| mailbox to clean up the test. |
733 l1->SetShowSolidColorContent(); | 733 l1->SetShowSolidColorContent(); |
734 } | 734 } |
735 | 735 |
736 // Various visibile/drawn assertions. | 736 // Various visibile/drawn assertions. |
737 TEST_F(LayerWithNullDelegateTest, Visibility) { | 737 TEST_F(LayerWithNullDelegateTest, Visibility) { |
738 scoped_ptr<Layer> l1(new Layer(LAYER_TEXTURED)); | 738 scoped_ptr<Layer> l1(new Layer(LAYER_TEXTURED)); |
739 scoped_ptr<Layer> l2(new Layer(LAYER_TEXTURED)); | 739 scoped_ptr<Layer> l2(new Layer(LAYER_TEXTURED)); |
740 scoped_ptr<Layer> l3(new Layer(LAYER_TEXTURED)); | 740 scoped_ptr<Layer> l3(new Layer(LAYER_TEXTURED)); |
741 l1->Add(l2.get()); | 741 l1->Add(l2.get()); |
742 l2->Add(l3.get()); | 742 l2->Add(l3.get()); |
743 | 743 |
744 NullLayerDelegate delegate; | 744 NullLayerDelegate delegate; |
745 l1->set_delegate(&delegate); | 745 l1->set_delegate(&delegate); |
746 l2->set_delegate(&delegate); | 746 l2->set_delegate(&delegate); |
747 l3->set_delegate(&delegate); | 747 l3->set_delegate(&delegate); |
748 | 748 |
749 // Layers should initially be drawn. | 749 // Layers should initially be drawn. |
750 EXPECT_TRUE(l1->IsDrawn()); | 750 EXPECT_TRUE(l1->IsDrawn()); |
751 EXPECT_TRUE(l2->IsDrawn()); | 751 EXPECT_TRUE(l2->IsDrawn()); |
752 EXPECT_TRUE(l3->IsDrawn()); | 752 EXPECT_TRUE(l3->IsDrawn()); |
753 EXPECT_FALSE(l1->cc_layer()->hide_layer_and_subtree()); | 753 EXPECT_FALSE(l1->cc_layer_for_testing()->hide_layer_and_subtree()); |
754 EXPECT_FALSE(l2->cc_layer()->hide_layer_and_subtree()); | 754 EXPECT_FALSE(l2->cc_layer_for_testing()->hide_layer_and_subtree()); |
755 EXPECT_FALSE(l3->cc_layer()->hide_layer_and_subtree()); | 755 EXPECT_FALSE(l3->cc_layer_for_testing()->hide_layer_and_subtree()); |
756 | 756 |
757 compositor()->SetRootLayer(l1.get()); | 757 compositor()->SetRootLayer(l1.get()); |
758 | 758 |
759 Draw(); | 759 Draw(); |
760 | 760 |
761 l1->SetVisible(false); | 761 l1->SetVisible(false); |
762 EXPECT_FALSE(l1->IsDrawn()); | 762 EXPECT_FALSE(l1->IsDrawn()); |
763 EXPECT_FALSE(l2->IsDrawn()); | 763 EXPECT_FALSE(l2->IsDrawn()); |
764 EXPECT_FALSE(l3->IsDrawn()); | 764 EXPECT_FALSE(l3->IsDrawn()); |
765 EXPECT_TRUE(l1->cc_layer()->hide_layer_and_subtree()); | 765 EXPECT_TRUE(l1->cc_layer_for_testing()->hide_layer_and_subtree()); |
766 EXPECT_FALSE(l2->cc_layer()->hide_layer_and_subtree()); | 766 EXPECT_FALSE(l2->cc_layer_for_testing()->hide_layer_and_subtree()); |
767 EXPECT_FALSE(l3->cc_layer()->hide_layer_and_subtree()); | 767 EXPECT_FALSE(l3->cc_layer_for_testing()->hide_layer_and_subtree()); |
768 | 768 |
769 l3->SetVisible(false); | 769 l3->SetVisible(false); |
770 EXPECT_FALSE(l1->IsDrawn()); | 770 EXPECT_FALSE(l1->IsDrawn()); |
771 EXPECT_FALSE(l2->IsDrawn()); | 771 EXPECT_FALSE(l2->IsDrawn()); |
772 EXPECT_FALSE(l3->IsDrawn()); | 772 EXPECT_FALSE(l3->IsDrawn()); |
773 EXPECT_TRUE(l1->cc_layer()->hide_layer_and_subtree()); | 773 EXPECT_TRUE(l1->cc_layer_for_testing()->hide_layer_and_subtree()); |
774 EXPECT_FALSE(l2->cc_layer()->hide_layer_and_subtree()); | 774 EXPECT_FALSE(l2->cc_layer_for_testing()->hide_layer_and_subtree()); |
775 EXPECT_TRUE(l3->cc_layer()->hide_layer_and_subtree()); | 775 EXPECT_TRUE(l3->cc_layer_for_testing()->hide_layer_and_subtree()); |
776 | 776 |
777 l1->SetVisible(true); | 777 l1->SetVisible(true); |
778 EXPECT_TRUE(l1->IsDrawn()); | 778 EXPECT_TRUE(l1->IsDrawn()); |
779 EXPECT_TRUE(l2->IsDrawn()); | 779 EXPECT_TRUE(l2->IsDrawn()); |
780 EXPECT_FALSE(l3->IsDrawn()); | 780 EXPECT_FALSE(l3->IsDrawn()); |
781 EXPECT_FALSE(l1->cc_layer()->hide_layer_and_subtree()); | 781 EXPECT_FALSE(l1->cc_layer_for_testing()->hide_layer_and_subtree()); |
782 EXPECT_FALSE(l2->cc_layer()->hide_layer_and_subtree()); | 782 EXPECT_FALSE(l2->cc_layer_for_testing()->hide_layer_and_subtree()); |
783 EXPECT_TRUE(l3->cc_layer()->hide_layer_and_subtree()); | 783 EXPECT_TRUE(l3->cc_layer_for_testing()->hide_layer_and_subtree()); |
784 } | 784 } |
785 | 785 |
786 // Checks that stacking-related methods behave as advertised. | 786 // Checks that stacking-related methods behave as advertised. |
787 TEST_F(LayerWithNullDelegateTest, Stacking) { | 787 TEST_F(LayerWithNullDelegateTest, Stacking) { |
788 scoped_ptr<Layer> root(new Layer(LAYER_NOT_DRAWN)); | 788 scoped_ptr<Layer> root(new Layer(LAYER_NOT_DRAWN)); |
789 scoped_ptr<Layer> l1(new Layer(LAYER_TEXTURED)); | 789 scoped_ptr<Layer> l1(new Layer(LAYER_TEXTURED)); |
790 scoped_ptr<Layer> l2(new Layer(LAYER_TEXTURED)); | 790 scoped_ptr<Layer> l2(new Layer(LAYER_TEXTURED)); |
791 scoped_ptr<Layer> l3(new Layer(LAYER_TEXTURED)); | 791 scoped_ptr<Layer> l3(new Layer(LAYER_TEXTURED)); |
792 l1->set_name("1"); | 792 l1->set_name("1"); |
793 l2->set_name("2"); | 793 l2->set_name("2"); |
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1285 l1_delegate.AddColor(SK_ColorWHITE); | 1285 l1_delegate.AddColor(SK_ColorWHITE); |
1286 l1->set_delegate(&l1_delegate); | 1286 l1->set_delegate(&l1_delegate); |
1287 | 1287 |
1288 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); | 1288 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); |
1289 GetCompositor()->SetRootLayer(root.get()); | 1289 GetCompositor()->SetRootLayer(root.get()); |
1290 root->Add(l1.get()); | 1290 root->Add(l1.get()); |
1291 WaitForDraw(); | 1291 WaitForDraw(); |
1292 | 1292 |
1293 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); | 1293 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); |
1294 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); | 1294 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); |
1295 gfx::Size cc_bounds_size = root->cc_layer()->bounds(); | 1295 gfx::Size cc_bounds_size = root->cc_layer_for_testing()->bounds(); |
1296 EXPECT_EQ("200x220", cc_bounds_size.ToString()); | 1296 EXPECT_EQ("200x220", cc_bounds_size.ToString()); |
1297 cc_bounds_size = l1->cc_layer()->bounds(); | 1297 cc_bounds_size = l1->cc_layer_for_testing()->bounds(); |
1298 EXPECT_EQ("140x180", cc_bounds_size.ToString()); | 1298 EXPECT_EQ("140x180", cc_bounds_size.ToString()); |
1299 // No scale change, so no scale notification. | 1299 // No scale change, so no scale notification. |
1300 EXPECT_EQ(0.0f, root_delegate.device_scale_factor()); | 1300 EXPECT_EQ(0.0f, root_delegate.device_scale_factor()); |
1301 EXPECT_EQ(0.0f, l1_delegate.device_scale_factor()); | 1301 EXPECT_EQ(0.0f, l1_delegate.device_scale_factor()); |
1302 | 1302 |
1303 // Scale up to 2.0. Changing scale doesn't change the bounds in DIP. | 1303 // Scale up to 2.0. Changing scale doesn't change the bounds in DIP. |
1304 GetCompositor()->SetScaleAndSize(2.0f, gfx::Size(500, 500)); | 1304 GetCompositor()->SetScaleAndSize(2.0f, gfx::Size(500, 500)); |
1305 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); | 1305 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); |
1306 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); | 1306 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); |
1307 // CC layer should still match the UI layer bounds. | 1307 // CC layer should still match the UI layer bounds. |
1308 cc_bounds_size = root->cc_layer()->bounds(); | 1308 cc_bounds_size = root->cc_layer_for_testing()->bounds(); |
1309 EXPECT_EQ("200x220", cc_bounds_size.ToString()); | 1309 EXPECT_EQ("200x220", cc_bounds_size.ToString()); |
1310 cc_bounds_size = l1->cc_layer()->bounds(); | 1310 cc_bounds_size = l1->cc_layer_for_testing()->bounds(); |
1311 EXPECT_EQ("140x180", cc_bounds_size.ToString()); | 1311 EXPECT_EQ("140x180", cc_bounds_size.ToString()); |
1312 // New scale factor must have been notified. Make sure painting happens at | 1312 // New scale factor must have been notified. Make sure painting happens at |
1313 // right scale. | 1313 // right scale. |
1314 EXPECT_EQ(2.0f, root_delegate.device_scale_factor()); | 1314 EXPECT_EQ(2.0f, root_delegate.device_scale_factor()); |
1315 EXPECT_EQ(2.0f, l1_delegate.device_scale_factor()); | 1315 EXPECT_EQ(2.0f, l1_delegate.device_scale_factor()); |
1316 | 1316 |
1317 // Scale down back to 1.0f. | 1317 // Scale down back to 1.0f. |
1318 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); | 1318 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); |
1319 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); | 1319 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); |
1320 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); | 1320 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); |
1321 // CC layer should still match the UI layer bounds. | 1321 // CC layer should still match the UI layer bounds. |
1322 cc_bounds_size = root->cc_layer()->bounds(); | 1322 cc_bounds_size = root->cc_layer_for_testing()->bounds(); |
1323 EXPECT_EQ("200x220", cc_bounds_size.ToString()); | 1323 EXPECT_EQ("200x220", cc_bounds_size.ToString()); |
1324 cc_bounds_size = l1->cc_layer()->bounds(); | 1324 cc_bounds_size = l1->cc_layer_for_testing()->bounds(); |
1325 EXPECT_EQ("140x180", cc_bounds_size.ToString()); | 1325 EXPECT_EQ("140x180", cc_bounds_size.ToString()); |
1326 // New scale factor must have been notified. Make sure painting happens at | 1326 // New scale factor must have been notified. Make sure painting happens at |
1327 // right scale. | 1327 // right scale. |
1328 EXPECT_EQ(1.0f, root_delegate.device_scale_factor()); | 1328 EXPECT_EQ(1.0f, root_delegate.device_scale_factor()); |
1329 EXPECT_EQ(1.0f, l1_delegate.device_scale_factor()); | 1329 EXPECT_EQ(1.0f, l1_delegate.device_scale_factor()); |
1330 | 1330 |
1331 root_delegate.reset(); | 1331 root_delegate.reset(); |
1332 l1_delegate.reset(); | 1332 l1_delegate.reset(); |
1333 // Just changing the size shouldn't notify the scale change nor | 1333 // Just changing the size shouldn't notify the scale change nor |
1334 // trigger repaint. | 1334 // trigger repaint. |
(...skipping 10 matching lines...) Expand all Loading... |
1345 gfx::Rect(10, 20, 140, 180))); | 1345 gfx::Rect(10, 20, 140, 180))); |
1346 TestLayerDelegate l1_delegate; | 1346 TestLayerDelegate l1_delegate; |
1347 l1_delegate.AddColor(SK_ColorWHITE); | 1347 l1_delegate.AddColor(SK_ColorWHITE); |
1348 l1->set_delegate(&l1_delegate); | 1348 l1->set_delegate(&l1_delegate); |
1349 | 1349 |
1350 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); | 1350 GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(500, 500)); |
1351 GetCompositor()->SetRootLayer(root.get()); | 1351 GetCompositor()->SetRootLayer(root.get()); |
1352 | 1352 |
1353 root->Add(l1.get()); | 1353 root->Add(l1.get()); |
1354 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); | 1354 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); |
1355 gfx::Size cc_bounds_size = l1->cc_layer()->bounds(); | 1355 gfx::Size cc_bounds_size = l1->cc_layer_for_testing()->bounds(); |
1356 EXPECT_EQ("140x180", cc_bounds_size.ToString()); | 1356 EXPECT_EQ("140x180", cc_bounds_size.ToString()); |
1357 EXPECT_EQ(0.0f, l1_delegate.device_scale_factor()); | 1357 EXPECT_EQ(0.0f, l1_delegate.device_scale_factor()); |
1358 | 1358 |
1359 // Remove l1 from root and change the scale. | 1359 // Remove l1 from root and change the scale. |
1360 root->Remove(l1.get()); | 1360 root->Remove(l1.get()); |
1361 EXPECT_EQ(NULL, l1->parent()); | 1361 EXPECT_EQ(NULL, l1->parent()); |
1362 EXPECT_EQ(NULL, l1->GetCompositor()); | 1362 EXPECT_EQ(NULL, l1->GetCompositor()); |
1363 GetCompositor()->SetScaleAndSize(2.0f, gfx::Size(500, 500)); | 1363 GetCompositor()->SetScaleAndSize(2.0f, gfx::Size(500, 500)); |
1364 // Sanity check on root and l1. | 1364 // Sanity check on root and l1. |
1365 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); | 1365 EXPECT_EQ("10,20 200x220", root->bounds().ToString()); |
1366 cc_bounds_size = l1->cc_layer()->bounds(); | 1366 cc_bounds_size = l1->cc_layer_for_testing()->bounds(); |
1367 EXPECT_EQ("140x180", cc_bounds_size.ToString()); | 1367 EXPECT_EQ("140x180", cc_bounds_size.ToString()); |
1368 | 1368 |
1369 root->Add(l1.get()); | 1369 root->Add(l1.get()); |
1370 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); | 1370 EXPECT_EQ("10,20 140x180", l1->bounds().ToString()); |
1371 cc_bounds_size = l1->cc_layer()->bounds(); | 1371 cc_bounds_size = l1->cc_layer_for_testing()->bounds(); |
1372 EXPECT_EQ("140x180", cc_bounds_size.ToString()); | 1372 EXPECT_EQ("140x180", cc_bounds_size.ToString()); |
1373 EXPECT_EQ(2.0f, l1_delegate.device_scale_factor()); | 1373 EXPECT_EQ(2.0f, l1_delegate.device_scale_factor()); |
1374 } | 1374 } |
1375 | 1375 |
1376 // Verifies that when changing bounds on a layer that is invisible, and then | 1376 // Verifies that when changing bounds on a layer that is invisible, and then |
1377 // made visible, the right thing happens: | 1377 // made visible, the right thing happens: |
1378 // - if just a move, then no painting should happen. | 1378 // - if just a move, then no painting should happen. |
1379 // - if a resize, the layer should be repainted. | 1379 // - if a resize, the layer should be repainted. |
1380 TEST_F(LayerWithDelegateTest, SetBoundsWhenInvisible) { | 1380 TEST_F(LayerWithDelegateTest, SetBoundsWhenInvisible) { |
1381 scoped_ptr<Layer> root(CreateNoTextureLayer(gfx::Rect(0, 0, 1000, 1000))); | 1381 scoped_ptr<Layer> root(CreateNoTextureLayer(gfx::Rect(0, 0, 1000, 1000))); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1433 DrawTree(root.get()); | 1433 DrawTree(root.get()); |
1434 | 1434 |
1435 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = | 1435 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = |
1436 new cc::DelegatedFrameResourceCollection; | 1436 new cc::DelegatedFrameResourceCollection; |
1437 scoped_refptr<cc::DelegatedFrameProvider> frame_provider; | 1437 scoped_refptr<cc::DelegatedFrameProvider> frame_provider; |
1438 | 1438 |
1439 // Content matches layer size. | 1439 // Content matches layer size. |
1440 frame_provider = new cc::DelegatedFrameProvider( | 1440 frame_provider = new cc::DelegatedFrameProvider( |
1441 resource_collection.get(), MakeFrameData(gfx::Size(10, 10))); | 1441 resource_collection.get(), MakeFrameData(gfx::Size(10, 10))); |
1442 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); | 1442 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); |
1443 EXPECT_EQ(child->cc_layer()->bounds().ToString(), | 1443 EXPECT_EQ(child->cc_layer_for_testing()->bounds().ToString(), |
1444 gfx::Size(10, 10).ToString()); | 1444 gfx::Size(10, 10).ToString()); |
1445 | 1445 |
1446 // Content larger than layer. | 1446 // Content larger than layer. |
1447 child->SetBounds(gfx::Rect(0, 0, 5, 5)); | 1447 child->SetBounds(gfx::Rect(0, 0, 5, 5)); |
1448 EXPECT_EQ(child->cc_layer()->bounds().ToString(), | 1448 EXPECT_EQ(child->cc_layer_for_testing()->bounds().ToString(), |
1449 gfx::Size(5, 5).ToString()); | 1449 gfx::Size(5, 5).ToString()); |
1450 | 1450 |
1451 // Content smaller than layer. | 1451 // Content smaller than layer. |
1452 child->SetBounds(gfx::Rect(0, 0, 10, 10)); | 1452 child->SetBounds(gfx::Rect(0, 0, 10, 10)); |
1453 frame_provider = new cc::DelegatedFrameProvider( | 1453 frame_provider = new cc::DelegatedFrameProvider( |
1454 resource_collection.get(), MakeFrameData(gfx::Size(5, 5))); | 1454 resource_collection.get(), MakeFrameData(gfx::Size(5, 5))); |
1455 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(5, 5)); | 1455 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(5, 5)); |
1456 EXPECT_EQ(child->cc_layer()->bounds().ToString(), gfx::Size(5, 5).ToString()); | 1456 EXPECT_EQ(child->cc_layer_for_testing()->bounds().ToString(), |
| 1457 gfx::Size(5, 5).ToString()); |
1457 | 1458 |
1458 // Hi-DPI content on low-DPI layer. | 1459 // Hi-DPI content on low-DPI layer. |
1459 frame_provider = new cc::DelegatedFrameProvider( | 1460 frame_provider = new cc::DelegatedFrameProvider( |
1460 resource_collection.get(), MakeFrameData(gfx::Size(20, 20))); | 1461 resource_collection.get(), MakeFrameData(gfx::Size(20, 20))); |
1461 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); | 1462 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); |
1462 EXPECT_EQ(child->cc_layer()->bounds().ToString(), | 1463 EXPECT_EQ(child->cc_layer_for_testing()->bounds().ToString(), |
1463 gfx::Size(10, 10).ToString()); | 1464 gfx::Size(10, 10).ToString()); |
1464 | 1465 |
1465 // Hi-DPI content on hi-DPI layer. | 1466 // Hi-DPI content on hi-DPI layer. |
1466 compositor()->SetScaleAndSize(2.f, gfx::Size(1000, 1000)); | 1467 compositor()->SetScaleAndSize(2.f, gfx::Size(1000, 1000)); |
1467 EXPECT_EQ(child->cc_layer()->bounds().ToString(), | 1468 EXPECT_EQ(child->cc_layer_for_testing()->bounds().ToString(), |
1468 gfx::Size(10, 10).ToString()); | 1469 gfx::Size(10, 10).ToString()); |
1469 | 1470 |
1470 // Low-DPI content on hi-DPI layer. | 1471 // Low-DPI content on hi-DPI layer. |
1471 frame_provider = new cc::DelegatedFrameProvider( | 1472 frame_provider = new cc::DelegatedFrameProvider( |
1472 resource_collection.get(), MakeFrameData(gfx::Size(10, 10))); | 1473 resource_collection.get(), MakeFrameData(gfx::Size(10, 10))); |
1473 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); | 1474 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); |
1474 EXPECT_EQ(child->cc_layer()->bounds().ToString(), | 1475 EXPECT_EQ(child->cc_layer_for_testing()->bounds().ToString(), |
1475 gfx::Size(10, 10).ToString()); | 1476 gfx::Size(10, 10).ToString()); |
1476 } | 1477 } |
1477 | 1478 |
1478 TEST_F(LayerWithDelegateTest, ExternalContent) { | 1479 TEST_F(LayerWithDelegateTest, ExternalContent) { |
1479 scoped_ptr<Layer> root(CreateNoTextureLayer(gfx::Rect(0, 0, 1000, 1000))); | 1480 scoped_ptr<Layer> root(CreateNoTextureLayer(gfx::Rect(0, 0, 1000, 1000))); |
1480 scoped_ptr<Layer> child(CreateLayer(LAYER_SOLID_COLOR)); | 1481 scoped_ptr<Layer> child(CreateLayer(LAYER_SOLID_COLOR)); |
1481 | 1482 |
1482 child->SetBounds(gfx::Rect(0, 0, 10, 10)); | 1483 child->SetBounds(gfx::Rect(0, 0, 10, 10)); |
1483 child->SetVisible(true); | 1484 child->SetVisible(true); |
1484 root->Add(child.get()); | 1485 root->Add(child.get()); |
1485 | 1486 |
1486 // The layer is already showing solid color content, so the cc layer won't | 1487 // The layer is already showing solid color content, so the cc layer won't |
1487 // change. | 1488 // change. |
1488 scoped_refptr<cc::Layer> before = child->cc_layer(); | 1489 scoped_refptr<cc::Layer> before = child->cc_layer_for_testing(); |
1489 child->SetShowSolidColorContent(); | 1490 child->SetShowSolidColorContent(); |
1490 EXPECT_TRUE(child->cc_layer()); | 1491 EXPECT_TRUE(child->cc_layer_for_testing()); |
1491 EXPECT_EQ(before.get(), child->cc_layer()); | 1492 EXPECT_EQ(before.get(), child->cc_layer_for_testing()); |
1492 | 1493 |
1493 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = | 1494 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = |
1494 new cc::DelegatedFrameResourceCollection; | 1495 new cc::DelegatedFrameResourceCollection; |
1495 scoped_refptr<cc::DelegatedFrameProvider> frame_provider = | 1496 scoped_refptr<cc::DelegatedFrameProvider> frame_provider = |
1496 new cc::DelegatedFrameProvider(resource_collection.get(), | 1497 new cc::DelegatedFrameProvider(resource_collection.get(), |
1497 MakeFrameData(gfx::Size(10, 10))); | 1498 MakeFrameData(gfx::Size(10, 10))); |
1498 | 1499 |
1499 // Showing delegated content changes the underlying cc layer. | 1500 // Showing delegated content changes the underlying cc layer. |
1500 before = child->cc_layer(); | 1501 before = child->cc_layer_for_testing(); |
1501 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); | 1502 child->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); |
1502 EXPECT_TRUE(child->cc_layer()); | 1503 EXPECT_TRUE(child->cc_layer_for_testing()); |
1503 EXPECT_NE(before.get(), child->cc_layer()); | 1504 EXPECT_NE(before.get(), child->cc_layer_for_testing()); |
1504 | 1505 |
1505 // Changing to painted content should change the underlying cc layer. | 1506 // Changing to painted content should change the underlying cc layer. |
1506 before = child->cc_layer(); | 1507 before = child->cc_layer_for_testing(); |
1507 child->SetShowSolidColorContent(); | 1508 child->SetShowSolidColorContent(); |
1508 EXPECT_TRUE(child->cc_layer()); | 1509 EXPECT_TRUE(child->cc_layer_for_testing()); |
1509 EXPECT_NE(before.get(), child->cc_layer()); | 1510 EXPECT_NE(before.get(), child->cc_layer_for_testing()); |
1510 } | 1511 } |
1511 | 1512 |
1512 // Verifies that layer filters still attached after changing implementation | 1513 // Verifies that layer filters still attached after changing implementation |
1513 // layer. | 1514 // layer. |
1514 TEST_F(LayerWithDelegateTest, LayerFiltersSurvival) { | 1515 TEST_F(LayerWithDelegateTest, LayerFiltersSurvival) { |
1515 scoped_ptr<Layer> layer(CreateLayer(LAYER_TEXTURED)); | 1516 scoped_ptr<Layer> layer(CreateLayer(LAYER_TEXTURED)); |
1516 layer->SetBounds(gfx::Rect(0, 0, 10, 10)); | 1517 layer->SetBounds(gfx::Rect(0, 0, 10, 10)); |
1517 EXPECT_TRUE(layer->cc_layer()); | 1518 EXPECT_TRUE(layer->cc_layer_for_testing()); |
1518 EXPECT_EQ(0u, layer->cc_layer()->filters().size()); | 1519 EXPECT_EQ(0u, layer->cc_layer_for_testing()->filters().size()); |
1519 | 1520 |
1520 layer->SetLayerGrayscale(0.5f); | 1521 layer->SetLayerGrayscale(0.5f); |
1521 EXPECT_EQ(layer->layer_grayscale(), 0.5f); | 1522 EXPECT_EQ(layer->layer_grayscale(), 0.5f); |
1522 EXPECT_EQ(1u, layer->cc_layer()->filters().size()); | 1523 EXPECT_EQ(1u, layer->cc_layer_for_testing()->filters().size()); |
1523 | 1524 |
1524 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = | 1525 scoped_refptr<cc::DelegatedFrameResourceCollection> resource_collection = |
1525 new cc::DelegatedFrameResourceCollection; | 1526 new cc::DelegatedFrameResourceCollection; |
1526 scoped_refptr<cc::DelegatedFrameProvider> frame_provider = | 1527 scoped_refptr<cc::DelegatedFrameProvider> frame_provider = |
1527 new cc::DelegatedFrameProvider(resource_collection.get(), | 1528 new cc::DelegatedFrameProvider(resource_collection.get(), |
1528 MakeFrameData(gfx::Size(10, 10))); | 1529 MakeFrameData(gfx::Size(10, 10))); |
1529 | 1530 |
1530 // Showing delegated content changes the underlying cc layer. | 1531 // Showing delegated content changes the underlying cc layer. |
1531 scoped_refptr<cc::Layer> before = layer->cc_layer(); | 1532 scoped_refptr<cc::Layer> before = layer->cc_layer_for_testing(); |
1532 layer->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); | 1533 layer->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); |
1533 EXPECT_EQ(layer->layer_grayscale(), 0.5f); | 1534 EXPECT_EQ(layer->layer_grayscale(), 0.5f); |
1534 EXPECT_TRUE(layer->cc_layer()); | 1535 EXPECT_TRUE(layer->cc_layer_for_testing()); |
1535 EXPECT_NE(before.get(), layer->cc_layer()); | 1536 EXPECT_NE(before.get(), layer->cc_layer_for_testing()); |
1536 EXPECT_EQ(1u, layer->cc_layer()->filters().size()); | 1537 EXPECT_EQ(1u, layer->cc_layer_for_testing()->filters().size()); |
1537 } | 1538 } |
1538 | 1539 |
1539 // Tests Layer::AddThreadedAnimation and Layer::RemoveThreadedAnimation. | 1540 // Tests Layer::AddThreadedAnimation and Layer::RemoveThreadedAnimation. |
1540 TEST_F(LayerWithRealCompositorTest, AddRemoveThreadedAnimations) { | 1541 TEST_F(LayerWithRealCompositorTest, AddRemoveThreadedAnimations) { |
1541 scoped_ptr<Layer> root(CreateLayer(LAYER_TEXTURED)); | 1542 scoped_ptr<Layer> root(CreateLayer(LAYER_TEXTURED)); |
1542 scoped_ptr<Layer> l1(CreateLayer(LAYER_TEXTURED)); | 1543 scoped_ptr<Layer> l1(CreateLayer(LAYER_TEXTURED)); |
1543 scoped_ptr<Layer> l2(CreateLayer(LAYER_TEXTURED)); | 1544 scoped_ptr<Layer> l2(CreateLayer(LAYER_TEXTURED)); |
1544 | 1545 |
1545 l1->SetAnimator(LayerAnimator::CreateImplicitAnimator()); | 1546 l1->SetAnimator(LayerAnimator::CreateImplicitAnimator()); |
1546 l2->SetAnimator(LayerAnimator::CreateImplicitAnimator()); | 1547 l2->SetAnimator(LayerAnimator::CreateImplicitAnimator()); |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1730 MakeFrameData(gfx::Size(10, 10)))); | 1731 MakeFrameData(gfx::Size(10, 10)))); |
1731 layer->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); | 1732 layer->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); |
1732 | 1733 |
1733 EXPECT_FALSE(delegate.delegated_frame_damage_called()); | 1734 EXPECT_FALSE(delegate.delegated_frame_damage_called()); |
1734 layer->OnDelegatedFrameDamage(damage_rect); | 1735 layer->OnDelegatedFrameDamage(damage_rect); |
1735 EXPECT_TRUE(delegate.delegated_frame_damage_called()); | 1736 EXPECT_TRUE(delegate.delegated_frame_damage_called()); |
1736 EXPECT_EQ(damage_rect, delegate.delegated_frame_damage_rect()); | 1737 EXPECT_EQ(damage_rect, delegate.delegated_frame_damage_rect()); |
1737 } | 1738 } |
1738 | 1739 |
1739 } // namespace ui | 1740 } // namespace ui |
OLD | NEW |