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

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

Issue 443353003: cc: Switch some pixel tests to use impl-side painting. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | 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 "build/build_config.h" 5 #include "build/build_config.h"
6 #include "cc/layers/content_layer.h"
7 #include "cc/layers/solid_color_layer.h" 6 #include "cc/layers/solid_color_layer.h"
8 #include "cc/layers/texture_layer.h" 7 #include "cc/layers/texture_layer.h"
9 #include "cc/output/copy_output_request.h" 8 #include "cc/output/copy_output_request.h"
10 #include "cc/output/copy_output_result.h" 9 #include "cc/output/copy_output_result.h"
10 #include "cc/test/fake_picture_layer.h"
11 #include "cc/test/fake_picture_layer_impl.h"
11 #include "cc/test/layer_tree_pixel_test.h" 12 #include "cc/test/layer_tree_pixel_test.h"
12 #include "cc/test/paths.h" 13 #include "cc/test/paths.h"
13 #include "cc/test/solid_color_content_layer_client.h" 14 #include "cc/test/solid_color_content_layer_client.h"
14 #include "cc/trees/layer_tree_impl.h" 15 #include "cc/trees/layer_tree_impl.h"
15 16
16 #if !defined(OS_ANDROID) 17 #if !defined(OS_ANDROID)
17 18
18 namespace cc { 19 namespace cc {
19 namespace { 20 namespace {
20 21
(...skipping 904 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 } 926 }
926 927
927 virtual void SetupTree() OVERRIDE { 928 virtual void SetupTree() OVERRIDE {
928 layer_tree_host()->SetDeviceScaleFactor(device_scale_factor_); 929 layer_tree_host()->SetDeviceScaleFactor(device_scale_factor_);
929 LayerTreePixelTest::SetupTree(); 930 LayerTreePixelTest::SetupTree();
930 } 931 }
931 932
932 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 933 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
933 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); 934 LayerImpl* root_impl = host_impl->active_tree()->root_layer();
934 935
935 LayerImpl* background_impl = root_impl->children()[0]; 936 FakePictureLayerImpl* background_impl =
936 EXPECT_EQ(device_scale_factor_, background_impl->contents_scale_x()); 937 static_cast<FakePictureLayerImpl*>(root_impl->children()[0]);
937 EXPECT_EQ(device_scale_factor_, background_impl->contents_scale_y()); 938 EXPECT_EQ(device_scale_factor_,
939 background_impl->HighResTiling()->contents_scale());
938 940
939 LayerImpl* green_impl = background_impl->children()[0]; 941 FakePictureLayerImpl* green_impl =
940 EXPECT_EQ(device_scale_factor_, green_impl->contents_scale_x()); 942 static_cast<FakePictureLayerImpl*>(background_impl->children()[0]);
941 EXPECT_EQ(device_scale_factor_, green_impl->contents_scale_y()); 943 EXPECT_EQ(device_scale_factor_,
944 green_impl->HighResTiling()->contents_scale());
942 945
943 LayerImpl* blue_impl = green_impl->children()[0]; 946 FakePictureLayerImpl* blue_impl =
944 EXPECT_EQ(device_scale_factor_, blue_impl->contents_scale_x()); 947 static_cast<FakePictureLayerImpl*>(green_impl->children()[0]);
945 EXPECT_EQ(device_scale_factor_, blue_impl->contents_scale_y()); 948 EXPECT_EQ(device_scale_factor_,
949 blue_impl->HighResTiling()->contents_scale());
946 } 950 }
947 951
948 float device_scale_factor_; 952 float device_scale_factor_;
949 SolidColorContentLayerClient white_client_; 953 SolidColorContentLayerClient white_client_;
950 SolidColorContentLayerClient green_client_; 954 SolidColorContentLayerClient green_client_;
951 SolidColorContentLayerClient blue_client_; 955 SolidColorContentLayerClient blue_client_;
952 }; 956 };
953 957
954 TEST_F(LayerTreeHostReadbackDeviceScalePixelTest, 958 TEST_F(LayerTreeHostReadbackDeviceScalePixelTest,
955 ReadbackSubrect_Software) { 959 ReadbackSubrect_Software) {
956 scoped_refptr<ContentLayer> background = ContentLayer::Create(&white_client_); 960 scoped_refptr<FakePictureLayer> background =
961 FakePictureLayer::Create(&white_client_);
957 background->SetBounds(gfx::Size(100, 100)); 962 background->SetBounds(gfx::Size(100, 100));
958 background->SetIsDrawable(true); 963 background->SetIsDrawable(true);
959 964
960 scoped_refptr<ContentLayer> green = ContentLayer::Create(&green_client_); 965 scoped_refptr<FakePictureLayer> green =
966 FakePictureLayer::Create(&green_client_);
961 green->SetBounds(gfx::Size(100, 100)); 967 green->SetBounds(gfx::Size(100, 100));
962 green->SetIsDrawable(true); 968 green->SetIsDrawable(true);
963 background->AddChild(green); 969 background->AddChild(green);
964 970
965 scoped_refptr<ContentLayer> blue = ContentLayer::Create(&blue_client_); 971 scoped_refptr<FakePictureLayer> blue =
972 FakePictureLayer::Create(&blue_client_);
966 blue->SetPosition(gfx::Point(50, 50)); 973 blue->SetPosition(gfx::Point(50, 50));
967 blue->SetBounds(gfx::Size(25, 25)); 974 blue->SetBounds(gfx::Size(25, 25));
968 blue->SetIsDrawable(true); 975 blue->SetIsDrawable(true);
969 green->AddChild(blue); 976 green->AddChild(blue);
970 977
971 // Grab the middle of the root layer. 978 // Grab the middle of the root layer.
972 copy_subrect_ = gfx::Rect(25, 25, 50, 50); 979 copy_subrect_ = gfx::Rect(25, 25, 50, 50);
973 device_scale_factor_ = 2.f; 980 device_scale_factor_ = 2.f;
974
975 this->impl_side_painting_ = false;
976 RunPixelTest(SOFTWARE_WITH_DEFAULT, 981 RunPixelTest(SOFTWARE_WITH_DEFAULT,
977 background, 982 background,
978 base::FilePath(FILE_PATH_LITERAL( 983 base::FilePath(FILE_PATH_LITERAL(
979 "green_small_with_blue_corner.png"))); 984 "green_small_with_blue_corner.png")));
980 } 985 }
981 986
982 TEST_F(LayerTreeHostReadbackDeviceScalePixelTest, 987 TEST_F(LayerTreeHostReadbackDeviceScalePixelTest,
983 ReadbackSubrect_GL) { 988 ReadbackSubrect_GL) {
984 scoped_refptr<ContentLayer> background = ContentLayer::Create(&white_client_); 989 scoped_refptr<FakePictureLayer> background =
990 FakePictureLayer::Create(&white_client_);
985 background->SetBounds(gfx::Size(100, 100)); 991 background->SetBounds(gfx::Size(100, 100));
986 background->SetIsDrawable(true); 992 background->SetIsDrawable(true);
987 993
988 scoped_refptr<ContentLayer> green = ContentLayer::Create(&green_client_); 994 scoped_refptr<FakePictureLayer> green =
995 FakePictureLayer::Create(&green_client_);
989 green->SetBounds(gfx::Size(100, 100)); 996 green->SetBounds(gfx::Size(100, 100));
990 green->SetIsDrawable(true); 997 green->SetIsDrawable(true);
991 background->AddChild(green); 998 background->AddChild(green);
992 999
993 scoped_refptr<ContentLayer> blue = ContentLayer::Create(&blue_client_); 1000 scoped_refptr<FakePictureLayer> blue =
1001 FakePictureLayer::Create(&blue_client_);
994 blue->SetPosition(gfx::Point(50, 50)); 1002 blue->SetPosition(gfx::Point(50, 50));
995 blue->SetBounds(gfx::Size(25, 25)); 1003 blue->SetBounds(gfx::Size(25, 25));
996 blue->SetIsDrawable(true); 1004 blue->SetIsDrawable(true);
997 green->AddChild(blue); 1005 green->AddChild(blue);
998 1006
999 // Grab the middle of the root layer. 1007 // Grab the middle of the root layer.
1000 copy_subrect_ = gfx::Rect(25, 25, 50, 50); 1008 copy_subrect_ = gfx::Rect(25, 25, 50, 50);
1001 device_scale_factor_ = 2.f; 1009 device_scale_factor_ = 2.f;
1002
1003 this->impl_side_painting_ = false;
1004 RunPixelTest(GL_WITH_DEFAULT, 1010 RunPixelTest(GL_WITH_DEFAULT,
1005 background, 1011 background,
1006 base::FilePath(FILE_PATH_LITERAL( 1012 base::FilePath(FILE_PATH_LITERAL(
1007 "green_small_with_blue_corner.png"))); 1013 "green_small_with_blue_corner.png")));
1008 } 1014 }
1009 1015
1010 TEST_F(LayerTreeHostReadbackDeviceScalePixelTest, 1016 TEST_F(LayerTreeHostReadbackDeviceScalePixelTest,
1011 ReadbackNonRootLayerSubrect_Software) { 1017 ReadbackNonRootLayerSubrect_Software) {
1012 scoped_refptr<ContentLayer> background = ContentLayer::Create(&white_client_); 1018 scoped_refptr<FakePictureLayer> background =
1019 FakePictureLayer::Create(&white_client_);
1013 background->SetBounds(gfx::Size(100, 100)); 1020 background->SetBounds(gfx::Size(100, 100));
1014 background->SetIsDrawable(true); 1021 background->SetIsDrawable(true);
1015 1022
1016 scoped_refptr<ContentLayer> green = ContentLayer::Create(&green_client_); 1023 scoped_refptr<FakePictureLayer> green =
1024 FakePictureLayer::Create(&green_client_);
1017 green->SetPosition(gfx::Point(10, 20)); 1025 green->SetPosition(gfx::Point(10, 20));
1018 green->SetBounds(gfx::Size(90, 80)); 1026 green->SetBounds(gfx::Size(90, 80));
1019 green->SetIsDrawable(true); 1027 green->SetIsDrawable(true);
1020 background->AddChild(green); 1028 background->AddChild(green);
1021 1029
1022 scoped_refptr<ContentLayer> blue = ContentLayer::Create(&blue_client_); 1030 scoped_refptr<FakePictureLayer> blue =
1031 FakePictureLayer::Create(&blue_client_);
1023 blue->SetPosition(gfx::Point(50, 50)); 1032 blue->SetPosition(gfx::Point(50, 50));
1024 blue->SetBounds(gfx::Size(25, 25)); 1033 blue->SetBounds(gfx::Size(25, 25));
1025 blue->SetIsDrawable(true); 1034 blue->SetIsDrawable(true);
1026 green->AddChild(blue); 1035 green->AddChild(blue);
1027 1036
1028 // Grab the green layer's content with blue in the bottom right. 1037 // Grab the green layer's content with blue in the bottom right.
1029 copy_subrect_ = gfx::Rect(25, 25, 50, 50); 1038 copy_subrect_ = gfx::Rect(25, 25, 50, 50);
1030 device_scale_factor_ = 2.f; 1039 device_scale_factor_ = 2.f;
1031
1032 this->impl_side_painting_ = false;
1033 RunPixelTestWithReadbackTarget(SOFTWARE_WITH_DEFAULT, 1040 RunPixelTestWithReadbackTarget(SOFTWARE_WITH_DEFAULT,
1034 background, 1041 background,
1035 green.get(), 1042 green.get(),
1036 base::FilePath(FILE_PATH_LITERAL( 1043 base::FilePath(FILE_PATH_LITERAL(
1037 "green_small_with_blue_corner.png"))); 1044 "green_small_with_blue_corner.png")));
1038 } 1045 }
1039 1046
1040 TEST_F(LayerTreeHostReadbackDeviceScalePixelTest, 1047 TEST_F(LayerTreeHostReadbackDeviceScalePixelTest,
1041 ReadbackNonRootLayerSubrect_GL) { 1048 ReadbackNonRootLayerSubrect_GL) {
1042 scoped_refptr<ContentLayer> background = ContentLayer::Create(&white_client_); 1049 scoped_refptr<FakePictureLayer> background =
1050 FakePictureLayer::Create(&white_client_);
1043 background->SetBounds(gfx::Size(100, 100)); 1051 background->SetBounds(gfx::Size(100, 100));
1044 background->SetIsDrawable(true); 1052 background->SetIsDrawable(true);
1045 1053
1046 scoped_refptr<ContentLayer> green = ContentLayer::Create(&green_client_); 1054 scoped_refptr<FakePictureLayer> green =
1055 FakePictureLayer::Create(&green_client_);
1047 green->SetPosition(gfx::Point(10, 20)); 1056 green->SetPosition(gfx::Point(10, 20));
1048 green->SetBounds(gfx::Size(90, 80)); 1057 green->SetBounds(gfx::Size(90, 80));
1049 green->SetIsDrawable(true); 1058 green->SetIsDrawable(true);
1050 background->AddChild(green); 1059 background->AddChild(green);
1051 1060
1052 scoped_refptr<ContentLayer> blue = ContentLayer::Create(&blue_client_); 1061 scoped_refptr<FakePictureLayer> blue =
1062 FakePictureLayer::Create(&blue_client_);
1053 blue->SetPosition(gfx::Point(50, 50)); 1063 blue->SetPosition(gfx::Point(50, 50));
1054 blue->SetBounds(gfx::Size(25, 25)); 1064 blue->SetBounds(gfx::Size(25, 25));
1055 blue->SetIsDrawable(true); 1065 blue->SetIsDrawable(true);
1056 green->AddChild(blue); 1066 green->AddChild(blue);
1057 1067
1058 // Grab the green layer's content with blue in the bottom right. 1068 // Grab the green layer's content with blue in the bottom right.
1059 copy_subrect_ = gfx::Rect(25, 25, 50, 50); 1069 copy_subrect_ = gfx::Rect(25, 25, 50, 50);
1060 device_scale_factor_ = 2.f; 1070 device_scale_factor_ = 2.f;
1061
1062 this->impl_side_painting_ = false;
1063 RunPixelTestWithReadbackTarget(GL_WITH_DEFAULT, 1071 RunPixelTestWithReadbackTarget(GL_WITH_DEFAULT,
1064 background, 1072 background,
1065 green.get(), 1073 green.get(),
1066 base::FilePath(FILE_PATH_LITERAL( 1074 base::FilePath(FILE_PATH_LITERAL(
1067 "green_small_with_blue_corner.png"))); 1075 "green_small_with_blue_corner.png")));
1068 } 1076 }
1069 1077
1070 TEST_F(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayerOutsideViewport) { 1078 TEST_F(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayerOutsideViewport) {
1071 scoped_refptr<SolidColorLayer> background = CreateSolidColorLayer( 1079 scoped_refptr<SolidColorLayer> background = CreateSolidColorLayer(
1072 gfx::Rect(200, 200), SK_ColorWHITE); 1080 gfx::Rect(200, 200), SK_ColorWHITE);
(...skipping 13 matching lines...) Expand all
1086 background, 1094 background,
1087 green.get(), 1095 green.get(),
1088 base::FilePath(FILE_PATH_LITERAL( 1096 base::FilePath(FILE_PATH_LITERAL(
1089 "green_with_blue_corner.png"))); 1097 "green_with_blue_corner.png")));
1090 } 1098 }
1091 1099
1092 } // namespace 1100 } // namespace
1093 } // namespace cc 1101 } // namespace cc
1094 1102
1095 #endif // OS_ANDROID 1103 #endif // OS_ANDROID
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698