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

Side by Side Diff: cc/resources/prioritized_tile_set_unittest.cc

Issue 62283012: cc: Added tile bundles (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years 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
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 <algorithm> 5 #include <algorithm>
6 #include <vector> 6 #include <vector>
7 7
8 #include "cc/resources/managed_tile_state.h" 8 #include "cc/resources/managed_tile_state.h"
9 #include "cc/resources/prioritized_tile_set.h" 9 #include "cc/resources/prioritized_tile_set.h"
10 #include "cc/resources/tile.h" 10 #include "cc/resources/tile.h"
11 #include "cc/resources/tile_bundle.h"
11 #include "cc/test/fake_output_surface.h" 12 #include "cc/test/fake_output_surface.h"
12 #include "cc/test/fake_output_surface_client.h" 13 #include "cc/test/fake_output_surface_client.h"
13 #include "cc/test/fake_picture_pile_impl.h" 14 #include "cc/test/fake_picture_pile_impl.h"
14 #include "cc/test/fake_tile_manager.h" 15 #include "cc/test/fake_tile_manager.h"
15 #include "cc/test/fake_tile_manager_client.h" 16 #include "cc/test/fake_tile_manager_client.h"
16 #include "cc/test/test_tile_priorities.h" 17 #include "cc/test/test_tile_priorities.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 19
19 namespace cc { 20 namespace cc {
20 21
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 return tile_manager_->CreateTile(picture_pile_.get(), 72 return tile_manager_->CreateTile(picture_pile_.get(),
72 settings_.default_tile_size, 73 settings_.default_tile_size,
73 gfx::Rect(), 74 gfx::Rect(),
74 gfx::Rect(), 75 gfx::Rect(),
75 1.0, 76 1.0,
76 0, 77 0,
77 0, 78 0,
78 true); 79 true);
79 } 80 }
80 81
82 scoped_refptr<Tile> CreateTileWithPriority(
83 const TilePriority& priority) {
84 scoped_refptr<TileBundle> bundle =
85 tile_manager_->CreateTileBundle(0, 0, 1, 1);
86 scoped_refptr<Tile> tile = CreateTile();
87 bundle->AddTileAt(ACTIVE_TREE, 0, 0, tile);
88 bundle->AddTileAt(PENDING_TREE, 0, 0, tile);
89 bundle->SetPriority(ACTIVE_TREE, priority);
90 bundle->SetPriority(PENDING_TREE, priority);
91 return tile;
92 }
93
81 private: 94 private:
82 LayerTreeSettings settings_; 95 LayerTreeSettings settings_;
83 FakeOutputSurfaceClient output_surface_client_; 96 FakeOutputSurfaceClient output_surface_client_;
84 scoped_ptr<FakeOutputSurface> output_surface_; 97 scoped_ptr<FakeOutputSurface> output_surface_;
85 scoped_ptr<ResourceProvider> resource_provider_; 98 scoped_ptr<ResourceProvider> resource_provider_;
86 FakeTileManagerClient tile_manager_client_; 99 FakeTileManagerClient tile_manager_client_;
87 scoped_ptr<FakeTileManager> tile_manager_; 100 scoped_ptr<FakeTileManager> tile_manager_;
88 scoped_refptr<FakePicturePileImpl> picture_pile_; 101 scoped_refptr<FakePicturePileImpl> picture_pile_;
89 }; 102 };
90 103
(...skipping 25 matching lines...) Expand all
116 PrioritizedTileSet set; 129 PrioritizedTileSet set;
117 TilePriority priorities[4] = { 130 TilePriority priorities[4] = {
118 TilePriorityForEventualBin(), 131 TilePriorityForEventualBin(),
119 TilePriorityForNowBin(), 132 TilePriorityForNowBin(),
120 TilePriority(), 133 TilePriority(),
121 TilePriorityForSoonBin()}; 134 TilePriorityForSoonBin()};
122 135
123 std::vector<scoped_refptr<Tile> > tiles; 136 std::vector<scoped_refptr<Tile> > tiles;
124 for (int priority = 0; priority < 4; ++priority) { 137 for (int priority = 0; priority < 4; ++priority) {
125 for (int i = 0; i < 5; ++i) { 138 for (int i = 0; i < 5; ++i) {
126 scoped_refptr<Tile> tile = CreateTile(); 139 scoped_refptr<Tile> tile = CreateTileWithPriority(priorities[priority]);
127 tile->SetPriority(ACTIVE_TREE, priorities[priority]);
128 tile->SetPriority(PENDING_TREE, priorities[priority]);
129 tiles.push_back(tile); 140 tiles.push_back(tile);
130 set.InsertTile(tile, NOW_AND_READY_TO_DRAW_BIN); 141 set.InsertTile(tile, NOW_AND_READY_TO_DRAW_BIN);
131 } 142 }
132 } 143 }
133 144
134 // Tiles should appear in the same order as inserted. 145 // Tiles should appear in the same order as inserted.
135 int i = 0; 146 int i = 0;
136 for (PrioritizedTileSet::Iterator it(&set, true); 147 for (PrioritizedTileSet::Iterator it(&set, true);
137 it; 148 it;
138 ++it) { 149 ++it) {
139 EXPECT_TRUE(*it == tiles[i].get()); 150 EXPECT_TRUE(*it == tiles[i].get());
140 ++i; 151 ++i;
141 } 152 }
142 EXPECT_EQ(20, i); 153 EXPECT_EQ(20, i);
143 } 154 }
144 155
145 TEST_F(PrioritizedTileSetTest, NowBin) { 156 TEST_F(PrioritizedTileSetTest, NowBin) {
146 // Ensure that tiles in NOW_BIN are sorted according to BinComparator. 157 // Ensure that tiles in NOW_BIN are sorted according to BinComparator.
147 158
148 PrioritizedTileSet set; 159 PrioritizedTileSet set;
149 TilePriority priorities[4] = { 160 TilePriority priorities[4] = {
150 TilePriorityForEventualBin(), 161 TilePriorityForEventualBin(),
151 TilePriorityForNowBin(), 162 TilePriorityForNowBin(),
152 TilePriority(), 163 TilePriority(),
153 TilePriorityForSoonBin()}; 164 TilePriorityForSoonBin()};
154 165
155 std::vector<scoped_refptr<Tile> > tiles; 166 std::vector<scoped_refptr<Tile> > tiles;
156 for (int priority = 0; priority < 4; ++priority) { 167 for (int priority = 0; priority < 4; ++priority) {
157 for (int i = 0; i < 5; ++i) { 168 for (int i = 0; i < 5; ++i) {
158 scoped_refptr<Tile> tile = CreateTile(); 169 scoped_refptr<Tile> tile = CreateTileWithPriority(priorities[priority]);
159 tile->SetPriority(ACTIVE_TREE, priorities[priority]);
160 tile->SetPriority(PENDING_TREE, priorities[priority]);
161 tiles.push_back(tile); 170 tiles.push_back(tile);
162 set.InsertTile(tile, NOW_BIN); 171 set.InsertTile(tile, NOW_BIN);
163 } 172 }
164 } 173 }
165 174
166 // Tiles should appear in BinComparator order. 175 // Tiles should appear in BinComparator order.
167 std::sort(tiles.begin(), tiles.end(), BinComparator()); 176 std::sort(tiles.begin(), tiles.end(), BinComparator());
168 177
169 int i = 0; 178 int i = 0;
170 for (PrioritizedTileSet::Iterator it(&set, true); 179 for (PrioritizedTileSet::Iterator it(&set, true);
(...skipping 11 matching lines...) Expand all
182 PrioritizedTileSet set; 191 PrioritizedTileSet set;
183 TilePriority priorities[4] = { 192 TilePriority priorities[4] = {
184 TilePriorityForEventualBin(), 193 TilePriorityForEventualBin(),
185 TilePriorityForNowBin(), 194 TilePriorityForNowBin(),
186 TilePriority(), 195 TilePriority(),
187 TilePriorityForSoonBin()}; 196 TilePriorityForSoonBin()};
188 197
189 std::vector<scoped_refptr<Tile> > tiles; 198 std::vector<scoped_refptr<Tile> > tiles;
190 for (int priority = 0; priority < 4; ++priority) { 199 for (int priority = 0; priority < 4; ++priority) {
191 for (int i = 0; i < 5; ++i) { 200 for (int i = 0; i < 5; ++i) {
192 scoped_refptr<Tile> tile = CreateTile(); 201 scoped_refptr<Tile> tile = CreateTileWithPriority(priorities[priority]);
193 tile->SetPriority(ACTIVE_TREE, priorities[priority]);
194 tile->SetPriority(PENDING_TREE, priorities[priority]);
195 tiles.push_back(tile); 202 tiles.push_back(tile);
196 set.InsertTile(tile, SOON_BIN); 203 set.InsertTile(tile, SOON_BIN);
197 } 204 }
198 } 205 }
199 206
200 // Tiles should appear in BinComparator order. 207 // Tiles should appear in BinComparator order.
201 std::sort(tiles.begin(), tiles.end(), BinComparator()); 208 std::sort(tiles.begin(), tiles.end(), BinComparator());
202 209
203 int i = 0; 210 int i = 0;
204 for (PrioritizedTileSet::Iterator it(&set, true); 211 for (PrioritizedTileSet::Iterator it(&set, true);
(...skipping 12 matching lines...) Expand all
217 PrioritizedTileSet set; 224 PrioritizedTileSet set;
218 TilePriority priorities[4] = { 225 TilePriority priorities[4] = {
219 TilePriorityForEventualBin(), 226 TilePriorityForEventualBin(),
220 TilePriorityForNowBin(), 227 TilePriorityForNowBin(),
221 TilePriority(), 228 TilePriority(),
222 TilePriorityForSoonBin()}; 229 TilePriorityForSoonBin()};
223 230
224 std::vector<scoped_refptr<Tile> > tiles; 231 std::vector<scoped_refptr<Tile> > tiles;
225 for (int priority = 0; priority < 4; ++priority) { 232 for (int priority = 0; priority < 4; ++priority) {
226 for (int i = 0; i < 5; ++i) { 233 for (int i = 0; i < 5; ++i) {
227 scoped_refptr<Tile> tile = CreateTile(); 234 scoped_refptr<Tile> tile = CreateTileWithPriority(priorities[priority]);
228 tile->SetPriority(ACTIVE_TREE, priorities[priority]);
229 tile->SetPriority(PENDING_TREE, priorities[priority]);
230 tiles.push_back(tile); 235 tiles.push_back(tile);
231 set.InsertTile(tile, SOON_BIN); 236 set.InsertTile(tile, SOON_BIN);
232 } 237 }
233 } 238 }
234 239
235 int i = 0; 240 int i = 0;
236 for (PrioritizedTileSet::Iterator it(&set, false); 241 for (PrioritizedTileSet::Iterator it(&set, false);
237 it; 242 it;
238 ++it) { 243 ++it) {
239 EXPECT_TRUE(*it == tiles[i].get()); 244 EXPECT_TRUE(*it == tiles[i].get());
240 ++i; 245 ++i;
241 } 246 }
242 EXPECT_EQ(20, i); 247 EXPECT_EQ(20, i);
243 } 248 }
244 249
245 TEST_F(PrioritizedTileSetTest, EventuallyAndActiveBin) { 250 TEST_F(PrioritizedTileSetTest, EventuallyAndActiveBin) {
246 // Ensure that EVENTUALLY_AND_ACTIVE_BIN tiles are sorted. 251 // Ensure that EVENTUALLY_AND_ACTIVE_BIN tiles are sorted.
247 252
248 PrioritizedTileSet set; 253 PrioritizedTileSet set;
249 TilePriority priorities[4] = { 254 TilePriority priorities[4] = {
250 TilePriorityForEventualBin(), 255 TilePriorityForEventualBin(),
251 TilePriorityForNowBin(), 256 TilePriorityForNowBin(),
252 TilePriority(), 257 TilePriority(),
253 TilePriorityForSoonBin()}; 258 TilePriorityForSoonBin()};
254 259
255 std::vector<scoped_refptr<Tile> > tiles; 260 std::vector<scoped_refptr<Tile> > tiles;
256 for (int priority = 0; priority < 4; ++priority) { 261 for (int priority = 0; priority < 4; ++priority) {
257 for (int i = 0; i < 5; ++i) { 262 for (int i = 0; i < 5; ++i) {
258 scoped_refptr<Tile> tile = CreateTile(); 263 scoped_refptr<Tile> tile = CreateTileWithPriority(priorities[priority]);
259 tile->SetPriority(ACTIVE_TREE, priorities[priority]);
260 tile->SetPriority(PENDING_TREE, priorities[priority]);
261 tiles.push_back(tile); 264 tiles.push_back(tile);
262 set.InsertTile(tile, EVENTUALLY_AND_ACTIVE_BIN); 265 set.InsertTile(tile, EVENTUALLY_AND_ACTIVE_BIN);
263 } 266 }
264 } 267 }
265 268
266 // Tiles should appear in BinComparator order. 269 // Tiles should appear in BinComparator order.
267 std::sort(tiles.begin(), tiles.end(), BinComparator()); 270 std::sort(tiles.begin(), tiles.end(), BinComparator());
268 271
269 int i = 0; 272 int i = 0;
270 for (PrioritizedTileSet::Iterator it(&set, true); 273 for (PrioritizedTileSet::Iterator it(&set, true);
(...skipping 11 matching lines...) Expand all
282 PrioritizedTileSet set; 285 PrioritizedTileSet set;
283 TilePriority priorities[4] = { 286 TilePriority priorities[4] = {
284 TilePriorityForEventualBin(), 287 TilePriorityForEventualBin(),
285 TilePriorityForNowBin(), 288 TilePriorityForNowBin(),
286 TilePriority(), 289 TilePriority(),
287 TilePriorityForSoonBin()}; 290 TilePriorityForSoonBin()};
288 291
289 std::vector<scoped_refptr<Tile> > tiles; 292 std::vector<scoped_refptr<Tile> > tiles;
290 for (int priority = 0; priority < 4; ++priority) { 293 for (int priority = 0; priority < 4; ++priority) {
291 for (int i = 0; i < 5; ++i) { 294 for (int i = 0; i < 5; ++i) {
292 scoped_refptr<Tile> tile = CreateTile(); 295 scoped_refptr<Tile> tile = CreateTileWithPriority(priorities[priority]);
293 tile->SetPriority(ACTIVE_TREE, priorities[priority]);
294 tile->SetPriority(PENDING_TREE, priorities[priority]);
295 tiles.push_back(tile); 296 tiles.push_back(tile);
296 set.InsertTile(tile, EVENTUALLY_BIN); 297 set.InsertTile(tile, EVENTUALLY_BIN);
297 } 298 }
298 } 299 }
299 300
300 // Tiles should appear in BinComparator order. 301 // Tiles should appear in BinComparator order.
301 std::sort(tiles.begin(), tiles.end(), BinComparator()); 302 std::sort(tiles.begin(), tiles.end(), BinComparator());
302 303
303 int i = 0; 304 int i = 0;
304 for (PrioritizedTileSet::Iterator it(&set, true); 305 for (PrioritizedTileSet::Iterator it(&set, true);
(...skipping 11 matching lines...) Expand all
316 PrioritizedTileSet set; 317 PrioritizedTileSet set;
317 TilePriority priorities[4] = { 318 TilePriority priorities[4] = {
318 TilePriorityForEventualBin(), 319 TilePriorityForEventualBin(),
319 TilePriorityForNowBin(), 320 TilePriorityForNowBin(),
320 TilePriority(), 321 TilePriority(),
321 TilePriorityForSoonBin()}; 322 TilePriorityForSoonBin()};
322 323
323 std::vector<scoped_refptr<Tile> > tiles; 324 std::vector<scoped_refptr<Tile> > tiles;
324 for (int priority = 0; priority < 4; ++priority) { 325 for (int priority = 0; priority < 4; ++priority) {
325 for (int i = 0; i < 5; ++i) { 326 for (int i = 0; i < 5; ++i) {
326 scoped_refptr<Tile> tile = CreateTile(); 327 scoped_refptr<Tile> tile = CreateTileWithPriority(priorities[priority]);
327 tile->SetPriority(ACTIVE_TREE, priorities[priority]);
328 tile->SetPriority(PENDING_TREE, priorities[priority]);
329 tiles.push_back(tile); 328 tiles.push_back(tile);
330 set.InsertTile(tile, AT_LAST_AND_ACTIVE_BIN); 329 set.InsertTile(tile, AT_LAST_AND_ACTIVE_BIN);
331 } 330 }
332 } 331 }
333 332
334 // Tiles should appear in BinComparator order. 333 // Tiles should appear in BinComparator order.
335 std::sort(tiles.begin(), tiles.end(), BinComparator()); 334 std::sort(tiles.begin(), tiles.end(), BinComparator());
336 335
337 int i = 0; 336 int i = 0;
338 for (PrioritizedTileSet::Iterator it(&set, true); 337 for (PrioritizedTileSet::Iterator it(&set, true);
(...skipping 11 matching lines...) Expand all
350 PrioritizedTileSet set; 349 PrioritizedTileSet set;
351 TilePriority priorities[4] = { 350 TilePriority priorities[4] = {
352 TilePriorityForEventualBin(), 351 TilePriorityForEventualBin(),
353 TilePriorityForNowBin(), 352 TilePriorityForNowBin(),
354 TilePriority(), 353 TilePriority(),
355 TilePriorityForSoonBin()}; 354 TilePriorityForSoonBin()};
356 355
357 std::vector<scoped_refptr<Tile> > tiles; 356 std::vector<scoped_refptr<Tile> > tiles;
358 for (int priority = 0; priority < 4; ++priority) { 357 for (int priority = 0; priority < 4; ++priority) {
359 for (int i = 0; i < 5; ++i) { 358 for (int i = 0; i < 5; ++i) {
360 scoped_refptr<Tile> tile = CreateTile(); 359 scoped_refptr<Tile> tile = CreateTileWithPriority(priorities[priority]);
361 tile->SetPriority(ACTIVE_TREE, priorities[priority]);
362 tile->SetPriority(PENDING_TREE, priorities[priority]);
363 tiles.push_back(tile); 360 tiles.push_back(tile);
364 set.InsertTile(tile, AT_LAST_BIN); 361 set.InsertTile(tile, AT_LAST_BIN);
365 } 362 }
366 } 363 }
367 364
368 // Tiles should appear in BinComparator order. 365 // Tiles should appear in BinComparator order.
369 std::sort(tiles.begin(), tiles.end(), BinComparator()); 366 std::sort(tiles.begin(), tiles.end(), BinComparator());
370 367
371 int i = 0; 368 int i = 0;
372 for (PrioritizedTileSet::Iterator it(&set, true); 369 for (PrioritizedTileSet::Iterator it(&set, true);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 429
433 TilePriority priorities[4] = { 430 TilePriority priorities[4] = {
434 TilePriorityForEventualBin(), 431 TilePriorityForEventualBin(),
435 TilePriorityForNowBin(), 432 TilePriorityForNowBin(),
436 TilePriority(), 433 TilePriority(),
437 TilePriorityForSoonBin()}; 434 TilePriorityForSoonBin()};
438 435
439 PrioritizedTileSet set; 436 PrioritizedTileSet set;
440 for (int priority = 0; priority < 4; ++priority) { 437 for (int priority = 0; priority < 4; ++priority) {
441 for (int i = 0; i < 5; ++i) { 438 for (int i = 0; i < 5; ++i) {
442 scoped_refptr<Tile> tile = CreateTile(); 439 scoped_refptr<Tile> tile = CreateTileWithPriority(priorities[priority]);
443 tile->SetPriority(ACTIVE_TREE, priorities[priority]);
444 tile->SetPriority(PENDING_TREE, priorities[priority]);
445 440
446 now_and_ready_to_draw_bins.push_back(tile); 441 now_and_ready_to_draw_bins.push_back(tile);
447 now_bins.push_back(tile); 442 now_bins.push_back(tile);
448 soon_bins.push_back(tile); 443 soon_bins.push_back(tile);
449 eventually_and_active_bins.push_back(tile); 444 eventually_and_active_bins.push_back(tile);
450 eventually_bins.push_back(tile); 445 eventually_bins.push_back(tile);
451 at_last_bins.push_back(tile); 446 at_last_bins.push_back(tile);
452 at_last_and_active_bins.push_back(tile); 447 at_last_and_active_bins.push_back(tile);
453 448
454 set.InsertTile(tile, NOW_AND_READY_TO_DRAW_BIN); 449 set.InsertTile(tile, NOW_AND_READY_TO_DRAW_BIN);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 538
544 TilePriority priorities[4] = { 539 TilePriority priorities[4] = {
545 TilePriorityForEventualBin(), 540 TilePriorityForEventualBin(),
546 TilePriorityForNowBin(), 541 TilePriorityForNowBin(),
547 TilePriority(), 542 TilePriority(),
548 TilePriorityForSoonBin()}; 543 TilePriorityForSoonBin()};
549 544
550 PrioritizedTileSet set; 545 PrioritizedTileSet set;
551 for (int priority = 0; priority < 4; ++priority) { 546 for (int priority = 0; priority < 4; ++priority) {
552 for (int i = 0; i < 5; ++i) { 547 for (int i = 0; i < 5; ++i) {
553 scoped_refptr<Tile> tile = CreateTile(); 548 scoped_refptr<Tile> tile = CreateTileWithPriority(priorities[priority]);
554 tile->SetPriority(ACTIVE_TREE, priorities[priority]);
555 tile->SetPriority(PENDING_TREE, priorities[priority]);
556 549
557 now_and_ready_to_draw_bins.push_back(tile); 550 now_and_ready_to_draw_bins.push_back(tile);
558 now_bins.push_back(tile); 551 now_bins.push_back(tile);
559 soon_bins.push_back(tile); 552 soon_bins.push_back(tile);
560 eventually_and_active_bins.push_back(tile); 553 eventually_and_active_bins.push_back(tile);
561 eventually_bins.push_back(tile); 554 eventually_bins.push_back(tile);
562 at_last_bins.push_back(tile); 555 at_last_bins.push_back(tile);
563 at_last_and_active_bins.push_back(tile); 556 at_last_and_active_bins.push_back(tile);
564 557
565 set.InsertTile(tile, NOW_AND_READY_TO_DRAW_BIN); 558 set.InsertTile(tile, NOW_AND_READY_TO_DRAW_BIN);
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 714
722 set.Clear(); 715 set.Clear();
723 716
724 PrioritizedTileSet::Iterator empty_it(&set, true); 717 PrioritizedTileSet::Iterator empty_it(&set, true);
725 EXPECT_FALSE(empty_it); 718 EXPECT_FALSE(empty_it);
726 } 719 }
727 720
728 } // namespace 721 } // namespace
729 } // namespace cc 722 } // namespace cc
730 723
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698