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 <limits> | 5 #include <limits> |
6 #include <set> | 6 #include <set> |
7 | 7 |
8 #include "cc/base/math_util.h" | 8 #include "cc/base/math_util.h" |
9 #include "cc/test/fake_output_surface.h" | 9 #include "cc/test/fake_output_surface.h" |
10 #include "cc/test/fake_output_surface_client.h" | 10 #include "cc/test/fake_output_surface_client.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
42 using PictureLayerTiling::TileAt; | 42 using PictureLayerTiling::TileAt; |
43 | 43 |
44 static scoped_ptr<TestablePictureLayerTiling> Create( | 44 static scoped_ptr<TestablePictureLayerTiling> Create( |
45 WhichTree tree, | 45 WhichTree tree, |
46 float contents_scale, | 46 float contents_scale, |
47 scoped_refptr<RasterSource> raster_source, | 47 scoped_refptr<RasterSource> raster_source, |
48 PictureLayerTilingClient* client, | 48 PictureLayerTilingClient* client, |
49 const LayerTreeSettings& settings) { | 49 const LayerTreeSettings& settings) { |
50 return make_scoped_ptr(new TestablePictureLayerTiling( | 50 return make_scoped_ptr(new TestablePictureLayerTiling( |
51 tree, contents_scale, raster_source, client, | 51 tree, contents_scale, raster_source, client, |
52 settings.max_tiles_for_interest_area, | 52 settings.tiling_interest_area_padding, |
53 settings.skewport_target_time_in_seconds, | 53 settings.skewport_target_time_in_seconds, |
54 settings.skewport_extrapolation_limit_in_content_pixels)); | 54 settings.skewport_extrapolation_limit_in_content_pixels)); |
55 } | 55 } |
56 | 56 |
57 gfx::Rect live_tiles_rect() const { return live_tiles_rect_; } | 57 gfx::Rect live_tiles_rect() const { return live_tiles_rect_; } |
58 | 58 |
59 using PictureLayerTiling::ComputeSkewport; | 59 using PictureLayerTiling::ComputeSkewport; |
60 using PictureLayerTiling::RemoveTileAt; | 60 using PictureLayerTiling::RemoveTileAt; |
61 | 61 |
62 protected: | 62 protected: |
63 TestablePictureLayerTiling(WhichTree tree, | 63 TestablePictureLayerTiling(WhichTree tree, |
64 float contents_scale, | 64 float contents_scale, |
65 scoped_refptr<RasterSource> raster_source, | 65 scoped_refptr<RasterSource> raster_source, |
66 PictureLayerTilingClient* client, | 66 PictureLayerTilingClient* client, |
67 size_t max_tiles_for_interest_area, | 67 size_t tiling_interest_area_padding, |
68 float skewport_target_time, | 68 float skewport_target_time, |
69 int skewport_extrapolation_limit) | 69 int skewport_extrapolation_limit) |
70 : PictureLayerTiling(tree, | 70 : PictureLayerTiling(tree, |
71 contents_scale, | 71 contents_scale, |
72 raster_source, | 72 raster_source, |
73 client, | 73 client, |
74 max_tiles_for_interest_area, | 74 tiling_interest_area_padding, |
75 skewport_target_time, | 75 skewport_target_time, |
76 skewport_extrapolation_limit) {} | 76 skewport_extrapolation_limit) {} |
77 }; | 77 }; |
78 | 78 |
79 class PictureLayerTilingIteratorTest : public testing::Test { | 79 class PictureLayerTilingIteratorTest : public testing::Test { |
80 public: | 80 public: |
81 PictureLayerTilingIteratorTest() {} | 81 PictureLayerTilingIteratorTest() {} |
82 ~PictureLayerTilingIteratorTest() override {} | 82 ~PictureLayerTilingIteratorTest() override {} |
83 | 83 |
84 void Initialize(const gfx::Size& tile_size, | 84 void Initialize(const gfx::Size& tile_size, |
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
543 } | 543 } |
544 | 544 |
545 TEST(PictureLayerTilingTest, SkewportLimits) { | 545 TEST(PictureLayerTilingTest, SkewportLimits) { |
546 FakePictureLayerTilingClient client; | 546 FakePictureLayerTilingClient client; |
547 | 547 |
548 gfx::Rect viewport(0, 0, 100, 100); | 548 gfx::Rect viewport(0, 0, 100, 100); |
549 gfx::Size layer_bounds(200, 200); | 549 gfx::Size layer_bounds(200, 200); |
550 | 550 |
551 client.SetTileSize(gfx::Size(100, 100)); | 551 client.SetTileSize(gfx::Size(100, 100)); |
552 LayerTreeSettings settings; | 552 LayerTreeSettings settings; |
553 settings.max_tiles_for_interest_area = 10000; | |
weiliangc
2015/07/15 19:56:09
Why can we rm this here? Does it have no effects i
vmpstr
2015/07/16 00:31:03
It's a similar reason as the previous comment. Bef
| |
554 settings.skewport_extrapolation_limit_in_content_pixels = 75; | 553 settings.skewport_extrapolation_limit_in_content_pixels = 75; |
555 | 554 |
556 scoped_refptr<FakePicturePileImpl> pile = | 555 scoped_refptr<FakePicturePileImpl> pile = |
557 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); | 556 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
558 scoped_ptr<TestablePictureLayerTiling> tiling = | 557 scoped_ptr<TestablePictureLayerTiling> tiling = |
559 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, | 558 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, |
560 settings); | 559 settings); |
561 | 560 |
562 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); | 561 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); |
563 | 562 |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
786 } | 785 } |
787 | 786 |
788 TEST(PictureLayerTilingTest, ViewportDistanceWithScale) { | 787 TEST(PictureLayerTilingTest, ViewportDistanceWithScale) { |
789 FakePictureLayerTilingClient client; | 788 FakePictureLayerTilingClient client; |
790 | 789 |
791 gfx::Rect viewport(0, 0, 100, 100); | 790 gfx::Rect viewport(0, 0, 100, 100); |
792 gfx::Size layer_bounds(1500, 1500); | 791 gfx::Size layer_bounds(1500, 1500); |
793 | 792 |
794 client.SetTileSize(gfx::Size(10, 10)); | 793 client.SetTileSize(gfx::Size(10, 10)); |
795 LayerTreeSettings settings; | 794 LayerTreeSettings settings; |
796 settings.max_tiles_for_interest_area = 10000; | |
797 | 795 |
798 // Tiling at 0.25 scale: this should create 47x47 tiles of size 10x10. | 796 // Tiling at 0.25 scale: this should create 47x47 tiles of size 10x10. |
799 // The reason is that each tile has a one pixel border, so tile at (1, 2) | 797 // The reason is that each tile has a one pixel border, so tile at (1, 2) |
800 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at | 798 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at |
801 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the | 799 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the |
802 // tiling. | 800 // tiling. |
803 scoped_refptr<FakePicturePileImpl> pile = | 801 scoped_refptr<FakePicturePileImpl> pile = |
804 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); | 802 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
805 scoped_ptr<TestablePictureLayerTiling> tiling = | 803 scoped_ptr<TestablePictureLayerTiling> tiling = |
806 TestablePictureLayerTiling::Create(ACTIVE_TREE, 0.25f, pile, &client, | 804 TestablePictureLayerTiling::Create(ACTIVE_TREE, 0.25f, pile, &client, |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
981 priority = prioritized_tiles[tiling->TileAt(5, 1)].priority(); | 979 priority = prioritized_tiles[tiling->TileAt(5, 1)].priority(); |
982 EXPECT_FLOAT_EQ(55.f, priority.distance_to_visible); | 980 EXPECT_FLOAT_EQ(55.f, priority.distance_to_visible); |
983 | 981 |
984 priority = prioritized_tiles[tiling->TileAt(2, 5)].priority(); | 982 priority = prioritized_tiles[tiling->TileAt(2, 5)].priority(); |
985 EXPECT_FLOAT_EQ(35.f, priority.distance_to_visible); | 983 EXPECT_FLOAT_EQ(35.f, priority.distance_to_visible); |
986 | 984 |
987 priority = prioritized_tiles[tiling->TileAt(3, 4)].priority(); | 985 priority = prioritized_tiles[tiling->TileAt(3, 4)].priority(); |
988 EXPECT_FLOAT_EQ(30.f, priority.distance_to_visible); | 986 EXPECT_FLOAT_EQ(30.f, priority.distance_to_visible); |
989 } | 987 } |
990 | 988 |
991 TEST(PictureLayerTilingTest, ExpandRectEqual) { | |
992 gfx::Rect in(40, 50, 100, 200); | |
993 gfx::Rect bounds(-1000, -1000, 10000, 10000); | |
994 int64 target_area = 100 * 200; | |
995 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
996 in, target_area, bounds, NULL); | |
997 EXPECT_EQ(in.ToString(), out.ToString()); | |
998 } | |
999 | |
1000 TEST(PictureLayerTilingTest, ExpandRectSmaller) { | |
1001 gfx::Rect in(40, 50, 100, 200); | |
1002 gfx::Rect bounds(-1000, -1000, 10000, 10000); | |
1003 int64 target_area = 100 * 100; | |
1004 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1005 in, target_area, bounds, NULL); | |
1006 EXPECT_EQ(out.bottom() - in.bottom(), in.y() - out.y()); | |
1007 EXPECT_EQ(out.right() - in.right(), in.x() - out.x()); | |
1008 EXPECT_EQ(out.width() - in.width(), out.height() - in.height()); | |
1009 | |
1010 // |in| represents the visible rect, and |out| represents the eventually rect. | |
1011 // If the eventually rect doesn't contain the visible rect, we will start | |
1012 // losing tiles. | |
1013 EXPECT_TRUE(out.Contains(in)); | |
1014 EXPECT_TRUE(bounds.Contains(out)); | |
1015 } | |
1016 | |
1017 TEST(PictureLayerTilingTest, ExpandRectUnbounded) { | |
1018 gfx::Rect in(40, 50, 100, 200); | |
1019 gfx::Rect bounds(-1000, -1000, 10000, 10000); | |
1020 int64 target_area = 200 * 200; | |
1021 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1022 in, target_area, bounds, NULL); | |
1023 EXPECT_EQ(out.bottom() - in.bottom(), in.y() - out.y()); | |
1024 EXPECT_EQ(out.right() - in.right(), in.x() - out.x()); | |
1025 EXPECT_EQ(out.width() - in.width(), out.height() - in.height()); | |
1026 EXPECT_NEAR(200 * 200, out.width() * out.height(), 100); | |
1027 EXPECT_TRUE(bounds.Contains(out)); | |
1028 } | |
1029 | |
1030 TEST(PictureLayerTilingTest, ExpandRectBoundedSmaller) { | |
1031 gfx::Rect in(40, 50, 100, 200); | |
1032 gfx::Rect bounds(50, 60, 40, 30); | |
1033 int64 target_area = 200 * 200; | |
1034 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1035 in, target_area, bounds, NULL); | |
1036 EXPECT_EQ(bounds.ToString(), out.ToString()); | |
1037 } | |
1038 | |
1039 TEST(PictureLayerTilingTest, ExpandRectBoundedEqual) { | |
1040 gfx::Rect in(40, 50, 100, 200); | |
1041 gfx::Rect bounds = in; | |
1042 int64 target_area = 200 * 200; | |
1043 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1044 in, target_area, bounds, NULL); | |
1045 EXPECT_EQ(bounds.ToString(), out.ToString()); | |
1046 } | |
1047 | |
1048 TEST(PictureLayerTilingTest, ExpandRectBoundedSmallerStretchVertical) { | |
1049 gfx::Rect in(40, 50, 100, 200); | |
1050 gfx::Rect bounds(45, 0, 90, 300); | |
1051 int64 target_area = 200 * 200; | |
1052 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1053 in, target_area, bounds, NULL); | |
1054 EXPECT_EQ(bounds.ToString(), out.ToString()); | |
1055 } | |
1056 | |
1057 TEST(PictureLayerTilingTest, ExpandRectBoundedEqualStretchVertical) { | |
1058 gfx::Rect in(40, 50, 100, 200); | |
1059 gfx::Rect bounds(40, 0, 100, 300); | |
1060 int64 target_area = 200 * 200; | |
1061 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1062 in, target_area, bounds, NULL); | |
1063 EXPECT_EQ(bounds.ToString(), out.ToString()); | |
1064 } | |
1065 | |
1066 TEST(PictureLayerTilingTest, ExpandRectBoundedSmallerStretchHorizontal) { | |
1067 gfx::Rect in(40, 50, 100, 200); | |
1068 gfx::Rect bounds(0, 55, 180, 190); | |
1069 int64 target_area = 200 * 200; | |
1070 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1071 in, target_area, bounds, NULL); | |
1072 EXPECT_EQ(bounds.ToString(), out.ToString()); | |
1073 } | |
1074 | |
1075 TEST(PictureLayerTilingTest, ExpandRectBoundedEqualStretchHorizontal) { | |
1076 gfx::Rect in(40, 50, 100, 200); | |
1077 gfx::Rect bounds(0, 50, 180, 200); | |
1078 int64 target_area = 200 * 200; | |
1079 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1080 in, target_area, bounds, NULL); | |
1081 EXPECT_EQ(bounds.ToString(), out.ToString()); | |
1082 } | |
1083 | |
1084 TEST(PictureLayerTilingTest, ExpandRectBoundedLeft) { | |
1085 gfx::Rect in(40, 50, 100, 200); | |
1086 gfx::Rect bounds(20, -1000, 10000, 10000); | |
1087 int64 target_area = 200 * 200; | |
1088 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1089 in, target_area, bounds, NULL); | |
1090 EXPECT_EQ(out.bottom() - in.bottom(), in.y() - out.y()); | |
1091 EXPECT_EQ(out.bottom() - in.bottom(), out.right() - in.right()); | |
1092 EXPECT_LE(out.width() * out.height(), target_area); | |
1093 EXPECT_GT(out.width() * out.height(), | |
1094 target_area - out.width() - out.height() * 2); | |
1095 EXPECT_TRUE(bounds.Contains(out)); | |
1096 } | |
1097 | |
1098 TEST(PictureLayerTilingTest, ExpandRectBoundedRight) { | |
1099 gfx::Rect in(40, 50, 100, 200); | |
1100 gfx::Rect bounds(-1000, -1000, 1000+120, 10000); | |
1101 int64 target_area = 200 * 200; | |
1102 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1103 in, target_area, bounds, NULL); | |
1104 EXPECT_EQ(out.bottom() - in.bottom(), in.y() - out.y()); | |
1105 EXPECT_EQ(out.bottom() - in.bottom(), in.x() - out.x()); | |
1106 EXPECT_LE(out.width() * out.height(), target_area); | |
1107 EXPECT_GT(out.width() * out.height(), | |
1108 target_area - out.width() - out.height() * 2); | |
1109 EXPECT_TRUE(bounds.Contains(out)); | |
1110 } | |
1111 | |
1112 TEST(PictureLayerTilingTest, ExpandRectBoundedTop) { | |
1113 gfx::Rect in(40, 50, 100, 200); | |
1114 gfx::Rect bounds(-1000, 30, 10000, 10000); | |
1115 int64 target_area = 200 * 200; | |
1116 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1117 in, target_area, bounds, NULL); | |
1118 EXPECT_EQ(out.right() - in.right(), in.x() - out.x()); | |
1119 EXPECT_EQ(out.right() - in.right(), out.bottom() - in.bottom()); | |
1120 EXPECT_LE(out.width() * out.height(), target_area); | |
1121 EXPECT_GT(out.width() * out.height(), | |
1122 target_area - out.width() * 2 - out.height()); | |
1123 EXPECT_TRUE(bounds.Contains(out)); | |
1124 } | |
1125 | |
1126 TEST(PictureLayerTilingTest, ExpandRectBoundedBottom) { | |
1127 gfx::Rect in(40, 50, 100, 200); | |
1128 gfx::Rect bounds(-1000, -1000, 10000, 1000 + 220); | |
1129 int64 target_area = 200 * 200; | |
1130 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1131 in, target_area, bounds, NULL); | |
1132 EXPECT_EQ(out.right() - in.right(), in.x() - out.x()); | |
1133 EXPECT_EQ(out.right() - in.right(), in.y() - out.y()); | |
1134 EXPECT_LE(out.width() * out.height(), target_area); | |
1135 EXPECT_GT(out.width() * out.height(), | |
1136 target_area - out.width() * 2 - out.height()); | |
1137 EXPECT_TRUE(bounds.Contains(out)); | |
1138 } | |
1139 | |
1140 TEST(PictureLayerTilingTest, ExpandRectSquishedHorizontally) { | |
1141 gfx::Rect in(40, 50, 100, 200); | |
1142 gfx::Rect bounds(0, -4000, 100+40+20, 100000); | |
1143 int64 target_area = 400 * 400; | |
1144 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1145 in, target_area, bounds, NULL); | |
1146 EXPECT_EQ(20, out.right() - in.right()); | |
1147 EXPECT_EQ(40, in.x() - out.x()); | |
1148 EXPECT_EQ(out.bottom() - in.bottom(), in.y() - out.y()); | |
1149 EXPECT_LE(out.width() * out.height(), target_area); | |
1150 EXPECT_GT(out.width() * out.height(), | |
1151 target_area - out.width() * 2); | |
1152 EXPECT_TRUE(bounds.Contains(out)); | |
1153 } | |
1154 | |
1155 TEST(PictureLayerTilingTest, ExpandRectSquishedVertically) { | |
1156 gfx::Rect in(40, 50, 100, 200); | |
1157 gfx::Rect bounds(-4000, 0, 100000, 200+50+30); | |
1158 int64 target_area = 400 * 400; | |
1159 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1160 in, target_area, bounds, NULL); | |
1161 EXPECT_EQ(30, out.bottom() - in.bottom()); | |
1162 EXPECT_EQ(50, in.y() - out.y()); | |
1163 EXPECT_EQ(out.right() - in.right(), in.x() - out.x()); | |
1164 EXPECT_LE(out.width() * out.height(), target_area); | |
1165 EXPECT_GT(out.width() * out.height(), | |
1166 target_area - out.height() * 2); | |
1167 EXPECT_TRUE(bounds.Contains(out)); | |
1168 } | |
1169 | |
1170 TEST(PictureLayerTilingTest, ExpandRectOutOfBoundsFarAway) { | |
1171 gfx::Rect in(400, 500, 100, 200); | |
1172 gfx::Rect bounds(0, 0, 10, 10); | |
1173 int64 target_area = 400 * 400; | |
1174 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1175 in, target_area, bounds, NULL); | |
1176 EXPECT_TRUE(out.IsEmpty()); | |
1177 } | |
1178 | |
1179 TEST(PictureLayerTilingTest, ExpandRectOutOfBoundsExpandedFullyCover) { | |
1180 gfx::Rect in(40, 50, 100, 100); | |
1181 gfx::Rect bounds(0, 0, 10, 10); | |
1182 int64 target_area = 400 * 400; | |
1183 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1184 in, target_area, bounds, NULL); | |
1185 EXPECT_EQ(bounds.ToString(), out.ToString()); | |
1186 } | |
1187 | |
1188 TEST(PictureLayerTilingTest, ExpandRectOutOfBoundsExpandedPartlyCover) { | |
1189 gfx::Rect in(600, 600, 100, 100); | |
1190 gfx::Rect bounds(0, 0, 500, 500); | |
1191 int64 target_area = 400 * 400; | |
1192 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1193 in, target_area, bounds, NULL); | |
1194 EXPECT_EQ(bounds.right(), out.right()); | |
1195 EXPECT_EQ(bounds.bottom(), out.bottom()); | |
1196 EXPECT_LE(out.width() * out.height(), target_area); | |
1197 EXPECT_GT(out.width() * out.height(), | |
1198 target_area - out.width() - out.height()); | |
1199 EXPECT_TRUE(bounds.Contains(out)); | |
1200 } | |
1201 | |
1202 TEST(PictureLayerTilingTest, EmptyStartingRect) { | |
1203 // If a layer has a non-invertible transform, then the starting rect | |
1204 // for the layer would be empty. | |
1205 gfx::Rect in(40, 40, 0, 0); | |
1206 gfx::Rect bounds(0, 0, 10, 10); | |
1207 int64 target_area = 400 * 400; | |
1208 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( | |
1209 in, target_area, bounds, NULL); | |
1210 EXPECT_TRUE(out.IsEmpty()); | |
1211 } | |
1212 | |
1213 static void TileExists(bool exists, Tile* tile, | 989 static void TileExists(bool exists, Tile* tile, |
1214 const gfx::Rect& geometry_rect) { | 990 const gfx::Rect& geometry_rect) { |
1215 EXPECT_EQ(exists, tile != NULL) << geometry_rect.ToString(); | 991 EXPECT_EQ(exists, tile != NULL) << geometry_rect.ToString(); |
1216 } | 992 } |
1217 | 993 |
1218 TEST_F(PictureLayerTilingIteratorTest, TilesExist) { | 994 TEST_F(PictureLayerTilingIteratorTest, TilesExist) { |
1219 gfx::Size layer_bounds(1099, 801); | 995 gfx::Size layer_bounds(1099, 801); |
1220 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); | 996 Initialize(gfx::Size(100, 100), 1.f, layer_bounds); |
1221 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); | 997 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); |
1222 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); | 998 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1286 EXPECT_EQ(expected_exists, tile != NULL) | 1062 EXPECT_EQ(expected_exists, tile != NULL) |
1287 << "Rects intersecting " << rect.ToString() << " should exist. " | 1063 << "Rects intersecting " << rect.ToString() << " should exist. " |
1288 << "Current tile rect is " << geometry_rect.ToString(); | 1064 << "Current tile rect is " << geometry_rect.ToString(); |
1289 } | 1065 } |
1290 | 1066 |
1291 TEST_F(PictureLayerTilingIteratorTest, | 1067 TEST_F(PictureLayerTilingIteratorTest, |
1292 TilesExistLargeViewportAndLayerWithSmallVisibleArea) { | 1068 TilesExistLargeViewportAndLayerWithSmallVisibleArea) { |
1293 gfx::Size layer_bounds(10000, 10000); | 1069 gfx::Size layer_bounds(10000, 10000); |
1294 client_.SetTileSize(gfx::Size(100, 100)); | 1070 client_.SetTileSize(gfx::Size(100, 100)); |
1295 LayerTreeSettings settings; | 1071 LayerTreeSettings settings; |
1296 settings.max_tiles_for_interest_area = 1; | 1072 settings.tiling_interest_area_padding = 1; |
1297 | 1073 |
1298 scoped_refptr<FakePicturePileImpl> pile = | 1074 scoped_refptr<FakePicturePileImpl> pile = |
1299 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); | 1075 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
1300 tiling_ = TestablePictureLayerTiling::Create(PENDING_TREE, 1.f, pile, | 1076 tiling_ = TestablePictureLayerTiling::Create(PENDING_TREE, 1.f, pile, |
1301 &client_, settings); | 1077 &client_, settings); |
1302 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); | 1078 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); |
1303 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); | 1079 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); |
1304 | 1080 |
1305 gfx::Rect visible_rect(8000, 8000, 50, 50); | 1081 gfx::Rect visible_rect(8000, 8000, 50, 50); |
1306 | 1082 |
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1743 | 1519 |
1744 // Offscreen layer is coming closer to viewport at 1000 pixels per second. | 1520 // Offscreen layer is coming closer to viewport at 1000 pixels per second. |
1745 current_screen_transform.Translate(1800, 0); | 1521 current_screen_transform.Translate(1800, 0); |
1746 last_screen_transform.Translate(2800, 0); | 1522 last_screen_transform.Translate(2800, 0); |
1747 | 1523 |
1748 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( | 1524 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( |
1749 current_screen_transform, device_viewport); | 1525 current_screen_transform, device_viewport); |
1750 | 1526 |
1751 client.SetTileSize(gfx::Size(100, 100)); | 1527 client.SetTileSize(gfx::Size(100, 100)); |
1752 LayerTreeSettings settings; | 1528 LayerTreeSettings settings; |
1753 settings.max_tiles_for_interest_area = 10000; | |
1754 | 1529 |
1755 scoped_refptr<FakePicturePileImpl> pile = | 1530 scoped_refptr<FakePicturePileImpl> pile = |
1756 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1531 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1757 current_layer_bounds); | 1532 current_layer_bounds); |
1758 scoped_ptr<TestablePictureLayerTiling> tiling = | 1533 scoped_ptr<TestablePictureLayerTiling> tiling = |
1759 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, | 1534 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, &client, |
1760 settings); | 1535 settings); |
1761 | 1536 |
1762 // previous ("last") frame | 1537 // previous ("last") frame |
1763 tiling->ComputeTilePriorityRects(viewport_in_layer_space, | 1538 tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1873 // - Viewport moves somewhere far away and active tiling clears tiles. | 1648 // - Viewport moves somewhere far away and active tiling clears tiles. |
1874 // - Viewport moves back and a new active tiling tile is created. | 1649 // - Viewport moves back and a new active tiling tile is created. |
1875 // Result: | 1650 // Result: |
1876 // - Recycle tiling does _not_ have the tile in the same location (thus it | 1651 // - Recycle tiling does _not_ have the tile in the same location (thus it |
1877 // will be shared next time a pending tiling is created). | 1652 // will be shared next time a pending tiling is created). |
1878 | 1653 |
1879 FakePictureLayerTilingClient active_client; | 1654 FakePictureLayerTilingClient active_client; |
1880 | 1655 |
1881 active_client.SetTileSize(gfx::Size(100, 100)); | 1656 active_client.SetTileSize(gfx::Size(100, 100)); |
1882 LayerTreeSettings settings; | 1657 LayerTreeSettings settings; |
1883 settings.max_tiles_for_interest_area = 10; | |
1884 | 1658 |
1885 scoped_refptr<FakePicturePileImpl> pile = | 1659 scoped_refptr<FakePicturePileImpl> pile = |
1886 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1660 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1887 gfx::Size(10000, 10000)); | 1661 gfx::Size(10000, 10000)); |
1888 scoped_ptr<TestablePictureLayerTiling> active_tiling = | 1662 scoped_ptr<TestablePictureLayerTiling> active_tiling = |
1889 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, | 1663 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, pile, |
1890 &active_client, settings); | 1664 &active_client, settings); |
1891 // Create all tiles on this tiling. | 1665 // Create all tiles on this tiling. |
1892 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, | 1666 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, |
1893 Occlusion()); | 1667 Occlusion()); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1941 &active_client, LayerTreeSettings()); | 1715 &active_client, LayerTreeSettings()); |
1942 // Create all tiles on this tiling. | 1716 // Create all tiles on this tiling. |
1943 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, | 1717 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, |
1944 Occlusion()); | 1718 Occlusion()); |
1945 | 1719 |
1946 FakePictureLayerTilingClient recycle_client; | 1720 FakePictureLayerTilingClient recycle_client; |
1947 recycle_client.SetTileSize(gfx::Size(100, 100)); | 1721 recycle_client.SetTileSize(gfx::Size(100, 100)); |
1948 recycle_client.set_twin_tiling(active_tiling.get()); | 1722 recycle_client.set_twin_tiling(active_tiling.get()); |
1949 | 1723 |
1950 LayerTreeSettings settings; | 1724 LayerTreeSettings settings; |
1951 settings.max_tiles_for_interest_area = 10; | |
1952 | 1725 |
1953 pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1726 pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1954 gfx::Size(100, 100)); | 1727 gfx::Size(100, 100)); |
1955 scoped_ptr<TestablePictureLayerTiling> recycle_tiling = | 1728 scoped_ptr<TestablePictureLayerTiling> recycle_tiling = |
1956 TestablePictureLayerTiling::Create(PENDING_TREE, 1.0f, pile, | 1729 TestablePictureLayerTiling::Create(PENDING_TREE, 1.0f, pile, |
1957 &recycle_client, settings); | 1730 &recycle_client, settings); |
1958 | 1731 |
1959 // Create all tiles on the recycle tiling. All tiles should be shared. | 1732 // Create all tiles on the recycle tiling. All tiles should be shared. |
1960 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, | 1733 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, |
1961 1.0f, Occlusion()); | 1734 1.0f, Occlusion()); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1994 tiling_->SetRasterSourceAndResize(pile); | 1767 tiling_->SetRasterSourceAndResize(pile); |
1995 | 1768 |
1996 // Tile size in the tiling should be resized to 250x200. | 1769 // Tile size in the tiling should be resized to 250x200. |
1997 EXPECT_EQ(250, tiling_->TilingDataForTesting().max_texture_size().width()); | 1770 EXPECT_EQ(250, tiling_->TilingDataForTesting().max_texture_size().width()); |
1998 EXPECT_EQ(200, tiling_->TilingDataForTesting().max_texture_size().height()); | 1771 EXPECT_EQ(200, tiling_->TilingDataForTesting().max_texture_size().height()); |
1999 EXPECT_EQ(0u, tiling_->AllTilesForTesting().size()); | 1772 EXPECT_EQ(0u, tiling_->AllTilesForTesting().size()); |
2000 } | 1773 } |
2001 | 1774 |
2002 } // namespace | 1775 } // namespace |
2003 } // namespace cc | 1776 } // namespace cc |
OLD | NEW |