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

Side by Side Diff: cc/tiles/picture_layer_tiling_unittest.cc

Issue 1837263005: cc: Rename DisplayListRasterSource to just RasterSource. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/tiles/picture_layer_tiling_set_unittest.cc ('k') | cc/tiles/prioritized_tile.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <limits> 7 #include <limits>
8 #include <set> 8 #include <set>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "cc/base/math_util.h" 11 #include "cc/base/math_util.h"
12 #include "cc/test/fake_display_list_raster_source.h"
13 #include "cc/test/fake_output_surface.h" 12 #include "cc/test/fake_output_surface.h"
14 #include "cc/test/fake_output_surface_client.h" 13 #include "cc/test/fake_output_surface_client.h"
15 #include "cc/test/fake_picture_layer_tiling_client.h" 14 #include "cc/test/fake_picture_layer_tiling_client.h"
15 #include "cc/test/fake_raster_source.h"
16 #include "cc/test/test_context_provider.h" 16 #include "cc/test/test_context_provider.h"
17 #include "cc/test/test_shared_bitmap_manager.h" 17 #include "cc/test/test_shared_bitmap_manager.h"
18 #include "cc/tiles/picture_layer_tiling.h" 18 #include "cc/tiles/picture_layer_tiling.h"
19 #include "cc/tiles/picture_layer_tiling_set.h" 19 #include "cc/tiles/picture_layer_tiling_set.h"
20 #include "cc/trees/layer_tree_settings.h" 20 #include "cc/trees/layer_tree_settings.h"
21 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
22 #include "ui/gfx/geometry/quad_f.h" 22 #include "ui/gfx/geometry/quad_f.h"
23 #include "ui/gfx/geometry/rect_conversions.h" 23 #include "ui/gfx/geometry/rect_conversions.h"
24 #include "ui/gfx/geometry/size_conversions.h" 24 #include "ui/gfx/geometry/size_conversions.h"
25 25
(...skipping 13 matching lines...) Expand all
39 } 39 }
40 40
41 class TestablePictureLayerTiling : public PictureLayerTiling { 41 class TestablePictureLayerTiling : public PictureLayerTiling {
42 public: 42 public:
43 using PictureLayerTiling::SetLiveTilesRect; 43 using PictureLayerTiling::SetLiveTilesRect;
44 using PictureLayerTiling::TileAt; 44 using PictureLayerTiling::TileAt;
45 45
46 static scoped_ptr<TestablePictureLayerTiling> Create( 46 static scoped_ptr<TestablePictureLayerTiling> Create(
47 WhichTree tree, 47 WhichTree tree,
48 float contents_scale, 48 float contents_scale,
49 scoped_refptr<DisplayListRasterSource> raster_source, 49 scoped_refptr<RasterSource> raster_source,
50 PictureLayerTilingClient* client, 50 PictureLayerTilingClient* client,
51 const LayerTreeSettings& settings) { 51 const LayerTreeSettings& settings) {
52 return make_scoped_ptr(new TestablePictureLayerTiling( 52 return make_scoped_ptr(new TestablePictureLayerTiling(
53 tree, contents_scale, raster_source, client, 53 tree, contents_scale, raster_source, client,
54 settings.tiling_interest_area_padding, 54 settings.tiling_interest_area_padding,
55 settings.skewport_target_time_in_seconds, 55 settings.skewport_target_time_in_seconds,
56 settings.skewport_extrapolation_limit_in_content_pixels)); 56 settings.skewport_extrapolation_limit_in_content_pixels));
57 } 57 }
58 58
59 gfx::Rect live_tiles_rect() const { return live_tiles_rect_; } 59 gfx::Rect live_tiles_rect() const { return live_tiles_rect_; }
60 60
61 using PictureLayerTiling::ComputeSkewport; 61 using PictureLayerTiling::ComputeSkewport;
62 using PictureLayerTiling::RemoveTileAt; 62 using PictureLayerTiling::RemoveTileAt;
63 using PictureLayerTiling::RemoveTilesInRegion; 63 using PictureLayerTiling::RemoveTilesInRegion;
64 64
65 protected: 65 protected:
66 TestablePictureLayerTiling( 66 TestablePictureLayerTiling(WhichTree tree,
67 WhichTree tree, 67 float contents_scale,
68 float contents_scale, 68 scoped_refptr<RasterSource> raster_source,
69 scoped_refptr<DisplayListRasterSource> raster_source, 69 PictureLayerTilingClient* client,
70 PictureLayerTilingClient* client, 70 size_t tiling_interest_area_padding,
71 size_t tiling_interest_area_padding, 71 float skewport_target_time,
72 float skewport_target_time, 72 int skewport_extrapolation_limit)
73 int skewport_extrapolation_limit)
74 : PictureLayerTiling(tree, 73 : PictureLayerTiling(tree,
75 contents_scale, 74 contents_scale,
76 raster_source, 75 raster_source,
77 client, 76 client,
78 tiling_interest_area_padding, 77 tiling_interest_area_padding,
79 skewport_target_time, 78 skewport_target_time,
80 skewport_extrapolation_limit) {} 79 skewport_extrapolation_limit) {}
81 }; 80 };
82 81
83 class PictureLayerTilingIteratorTest : public testing::Test { 82 class PictureLayerTilingIteratorTest : public testing::Test {
84 public: 83 public:
85 PictureLayerTilingIteratorTest() {} 84 PictureLayerTilingIteratorTest() {}
86 ~PictureLayerTilingIteratorTest() override {} 85 ~PictureLayerTilingIteratorTest() override {}
87 86
88 void Initialize(const gfx::Size& tile_size, 87 void Initialize(const gfx::Size& tile_size,
89 float contents_scale, 88 float contents_scale,
90 const gfx::Size& layer_bounds) { 89 const gfx::Size& layer_bounds) {
91 client_.SetTileSize(tile_size); 90 client_.SetTileSize(tile_size);
92 scoped_refptr<FakeDisplayListRasterSource> raster_source = 91 scoped_refptr<FakeRasterSource> raster_source =
93 FakeDisplayListRasterSource::CreateFilled(layer_bounds); 92 FakeRasterSource::CreateFilled(layer_bounds);
94 tiling_ = TestablePictureLayerTiling::Create(PENDING_TREE, contents_scale, 93 tiling_ = TestablePictureLayerTiling::Create(PENDING_TREE, contents_scale,
95 raster_source, &client_, 94 raster_source, &client_,
96 LayerTreeSettings()); 95 LayerTreeSettings());
97 tiling_->set_resolution(HIGH_RESOLUTION); 96 tiling_->set_resolution(HIGH_RESOLUTION);
98 } 97 }
99 98
100 void InitializeActive(const gfx::Size& tile_size, 99 void InitializeActive(const gfx::Size& tile_size,
101 float contents_scale, 100 float contents_scale,
102 const gfx::Size& layer_bounds) { 101 const gfx::Size& layer_bounds) {
103 client_.SetTileSize(tile_size); 102 client_.SetTileSize(tile_size);
104 scoped_refptr<FakeDisplayListRasterSource> raster_source = 103 scoped_refptr<FakeRasterSource> raster_source =
105 FakeDisplayListRasterSource::CreateFilled(layer_bounds); 104 FakeRasterSource::CreateFilled(layer_bounds);
106 tiling_ = TestablePictureLayerTiling::Create(ACTIVE_TREE, contents_scale, 105 tiling_ = TestablePictureLayerTiling::Create(ACTIVE_TREE, contents_scale,
107 raster_source, &client_, 106 raster_source, &client_,
108 LayerTreeSettings()); 107 LayerTreeSettings());
109 tiling_->set_resolution(HIGH_RESOLUTION); 108 tiling_->set_resolution(HIGH_RESOLUTION);
110 } 109 }
111 110
112 void SetLiveRectAndVerifyTiles(const gfx::Rect& live_tiles_rect) { 111 void SetLiveRectAndVerifyTiles(const gfx::Rect& live_tiles_rect) {
113 tiling_->SetLiveTilesRect(live_tiles_rect); 112 tiling_->SetLiveTilesRect(live_tiles_rect);
114 113
115 std::vector<Tile*> tiles = tiling_->AllTilesForTesting(); 114 std::vector<Tile*> tiles = tiling_->AllTilesForTesting();
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 gfx::Size tile_size(100, 100); 209 gfx::Size tile_size(100, 100);
211 gfx::Size original_layer_size(10, 10); 210 gfx::Size original_layer_size(10, 10);
212 InitializeActive(tile_size, 1.f, original_layer_size); 211 InitializeActive(tile_size, 1.f, original_layer_size);
213 SetLiveRectAndVerifyTiles(gfx::Rect(original_layer_size)); 212 SetLiveRectAndVerifyTiles(gfx::Rect(original_layer_size));
214 213
215 // Tiling only has one tile, since its total size is less than one. 214 // Tiling only has one tile, since its total size is less than one.
216 EXPECT_TRUE(tiling_->TileAt(0, 0)); 215 EXPECT_TRUE(tiling_->TileAt(0, 0));
217 216
218 // Stop creating tiles so that any invalidations are left as holes. 217 // Stop creating tiles so that any invalidations are left as holes.
219 gfx::Size new_layer_size(200, 200); 218 gfx::Size new_layer_size(200, 200);
220 scoped_refptr<FakeDisplayListRasterSource> raster_source = 219 scoped_refptr<FakeRasterSource> raster_source =
221 FakeDisplayListRasterSource::CreatePartiallyFilled(new_layer_size, 220 FakeRasterSource::CreatePartiallyFilled(new_layer_size, gfx::Rect());
222 gfx::Rect());
223 221
224 Region invalidation = 222 Region invalidation =
225 SubtractRegions(gfx::Rect(tile_size), gfx::Rect(original_layer_size)); 223 SubtractRegions(gfx::Rect(tile_size), gfx::Rect(original_layer_size));
226 tiling_->SetRasterSourceAndResize(raster_source); 224 tiling_->SetRasterSourceAndResize(raster_source);
227 EXPECT_TRUE(tiling_->TileAt(0, 0)); 225 EXPECT_TRUE(tiling_->TileAt(0, 0));
228 tiling_->Invalidate(invalidation); 226 tiling_->Invalidate(invalidation);
229 EXPECT_FALSE(tiling_->TileAt(0, 0)); 227 EXPECT_FALSE(tiling_->TileAt(0, 0));
230 } 228 }
231 229
232 TEST_F(PictureLayerTilingIteratorTest, CreateMissingTilesStaysInsideLiveRect) { 230 TEST_F(PictureLayerTilingIteratorTest, CreateMissingTilesStaysInsideLiveRect) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 EXPECT_TRUE(tiling_->TileAt(2, 2)); 270 EXPECT_TRUE(tiling_->TileAt(2, 2));
273 EXPECT_TRUE(tiling_->TileAt(2, 3)); 271 EXPECT_TRUE(tiling_->TileAt(2, 3));
274 EXPECT_TRUE(tiling_->TileAt(1, 3)); 272 EXPECT_TRUE(tiling_->TileAt(1, 3));
275 EXPECT_TRUE(tiling_->TileAt(0, 3)); 273 EXPECT_TRUE(tiling_->TileAt(0, 3));
276 274
277 int right = tiling_->TilingDataForTesting().TileBounds(2, 2).x(); 275 int right = tiling_->TilingDataForTesting().TileBounds(2, 2).x();
278 int bottom = tiling_->TilingDataForTesting().TileBounds(2, 3).y(); 276 int bottom = tiling_->TilingDataForTesting().TileBounds(2, 3).y();
279 277
280 // Shrink the tiling so that the last tile row/column is entirely in the 278 // Shrink the tiling so that the last tile row/column is entirely in the
281 // border pixels of the interior tiles. That row/column is removed. 279 // border pixels of the interior tiles. That row/column is removed.
282 scoped_refptr<FakeDisplayListRasterSource> raster_source = 280 scoped_refptr<FakeRasterSource> raster_source =
283 FakeDisplayListRasterSource::CreateFilled( 281 FakeRasterSource::CreateFilled(gfx::Size(right + 1, bottom + 1));
284 gfx::Size(right + 1, bottom + 1));
285 tiling_->SetRasterSourceAndResize(raster_source); 282 tiling_->SetRasterSourceAndResize(raster_source);
286 EXPECT_EQ(2, tiling_->TilingDataForTesting().num_tiles_x()); 283 EXPECT_EQ(2, tiling_->TilingDataForTesting().num_tiles_x());
287 EXPECT_EQ(3, tiling_->TilingDataForTesting().num_tiles_y()); 284 EXPECT_EQ(3, tiling_->TilingDataForTesting().num_tiles_y());
288 285
289 // The live tiles rect was clamped to the raster source size. 286 // The live tiles rect was clamped to the raster source size.
290 EXPECT_EQ(gfx::Rect(right + 1, bottom + 1), tiling_->live_tiles_rect()); 287 EXPECT_EQ(gfx::Rect(right + 1, bottom + 1), tiling_->live_tiles_rect());
291 288
292 // Since the row/column is gone, the tiles should be gone too. 289 // Since the row/column is gone, the tiles should be gone too.
293 EXPECT_FALSE(tiling_->TileAt(2, 0)); 290 EXPECT_FALSE(tiling_->TileAt(2, 0));
294 EXPECT_FALSE(tiling_->TileAt(2, 1)); 291 EXPECT_FALSE(tiling_->TileAt(2, 1));
295 EXPECT_FALSE(tiling_->TileAt(2, 2)); 292 EXPECT_FALSE(tiling_->TileAt(2, 2));
296 EXPECT_FALSE(tiling_->TileAt(2, 3)); 293 EXPECT_FALSE(tiling_->TileAt(2, 3));
297 EXPECT_FALSE(tiling_->TileAt(1, 3)); 294 EXPECT_FALSE(tiling_->TileAt(1, 3));
298 EXPECT_FALSE(tiling_->TileAt(0, 3)); 295 EXPECT_FALSE(tiling_->TileAt(0, 3));
299 296
300 // Growing outside the current right/bottom tiles border pixels should create 297 // Growing outside the current right/bottom tiles border pixels should create
301 // the tiles again, even though the live rect has not changed size. 298 // the tiles again, even though the live rect has not changed size.
302 raster_source = FakeDisplayListRasterSource::CreateFilled( 299 raster_source =
303 gfx::Size(right + 2, bottom + 2)); 300 FakeRasterSource::CreateFilled(gfx::Size(right + 2, bottom + 2));
304 tiling_->SetRasterSourceAndResize(raster_source); 301 tiling_->SetRasterSourceAndResize(raster_source);
305 EXPECT_EQ(3, tiling_->TilingDataForTesting().num_tiles_x()); 302 EXPECT_EQ(3, tiling_->TilingDataForTesting().num_tiles_x());
306 EXPECT_EQ(4, tiling_->TilingDataForTesting().num_tiles_y()); 303 EXPECT_EQ(4, tiling_->TilingDataForTesting().num_tiles_y());
307 304
308 // Not changed. 305 // Not changed.
309 EXPECT_EQ(gfx::Rect(right + 1, bottom + 1), tiling_->live_tiles_rect()); 306 EXPECT_EQ(gfx::Rect(right + 1, bottom + 1), tiling_->live_tiles_rect());
310 307
311 // The last row/column tiles are inside the live tiles rect. 308 // The last row/column tiles are inside the live tiles rect.
312 EXPECT_TRUE(gfx::Rect(right + 1, bottom + 1).Intersects( 309 EXPECT_TRUE(gfx::Rect(right + 1, bottom + 1).Intersects(
313 tiling_->TilingDataForTesting().TileBounds(2, 0))); 310 tiling_->TilingDataForTesting().TileBounds(2, 0)));
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 // deletes tiles that intersect that invalidation. 423 // deletes tiles that intersect that invalidation.
427 gfx::Size tile_size(100, 100); 424 gfx::Size tile_size(100, 100);
428 gfx::Size original_layer_size(99, 99); 425 gfx::Size original_layer_size(99, 99);
429 InitializeActive(tile_size, 1.f, original_layer_size); 426 InitializeActive(tile_size, 1.f, original_layer_size);
430 SetLiveRectAndVerifyTiles(gfx::Rect(original_layer_size)); 427 SetLiveRectAndVerifyTiles(gfx::Rect(original_layer_size));
431 428
432 // Tiling only has one tile, since its total size is less than one. 429 // Tiling only has one tile, since its total size is less than one.
433 EXPECT_TRUE(tiling_->TileAt(0, 0)); 430 EXPECT_TRUE(tiling_->TileAt(0, 0));
434 431
435 // Stop creating tiles so that any invalidations are left as holes. 432 // Stop creating tiles so that any invalidations are left as holes.
436 scoped_refptr<FakeDisplayListRasterSource> raster_source = 433 scoped_refptr<FakeRasterSource> raster_source =
437 FakeDisplayListRasterSource::CreatePartiallyFilled(gfx::Size(200, 200), 434 FakeRasterSource::CreatePartiallyFilled(gfx::Size(200, 200), gfx::Rect());
438 gfx::Rect());
439 tiling_->SetRasterSourceAndResize(raster_source); 435 tiling_->SetRasterSourceAndResize(raster_source);
440 436
441 Region invalidation = 437 Region invalidation =
442 SubtractRegions(gfx::Rect(tile_size), gfx::Rect(original_layer_size)); 438 SubtractRegions(gfx::Rect(tile_size), gfx::Rect(original_layer_size));
443 EXPECT_TRUE(tiling_->TileAt(0, 0)); 439 EXPECT_TRUE(tiling_->TileAt(0, 0));
444 tiling_->Invalidate(invalidation); 440 tiling_->Invalidate(invalidation);
445 EXPECT_FALSE(tiling_->TileAt(0, 0)); 441 EXPECT_FALSE(tiling_->TileAt(0, 0));
446 442
447 // The original tile was the same size after resize, but it would include new 443 // The original tile was the same size after resize, but it would include new
448 // border pixels. 444 // border pixels.
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 TEST(PictureLayerTilingTest, SkewportLimits) { 574 TEST(PictureLayerTilingTest, SkewportLimits) {
579 FakePictureLayerTilingClient client; 575 FakePictureLayerTilingClient client;
580 576
581 gfx::Rect viewport(0, 0, 100, 100); 577 gfx::Rect viewport(0, 0, 100, 100);
582 gfx::Size layer_bounds(200, 200); 578 gfx::Size layer_bounds(200, 200);
583 579
584 client.SetTileSize(gfx::Size(100, 100)); 580 client.SetTileSize(gfx::Size(100, 100));
585 LayerTreeSettings settings; 581 LayerTreeSettings settings;
586 settings.skewport_extrapolation_limit_in_content_pixels = 75; 582 settings.skewport_extrapolation_limit_in_content_pixels = 75;
587 583
588 scoped_refptr<FakeDisplayListRasterSource> raster_source = 584 scoped_refptr<FakeRasterSource> raster_source =
589 FakeDisplayListRasterSource::CreateFilled(layer_bounds); 585 FakeRasterSource::CreateFilled(layer_bounds);
590 scoped_ptr<TestablePictureLayerTiling> tiling = 586 scoped_ptr<TestablePictureLayerTiling> tiling =
591 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 587 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
592 &client, settings); 588 &client, settings);
593 589
594 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); 590 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion());
595 591
596 // Move viewport down 50 pixels in 0.5 seconds. 592 // Move viewport down 50 pixels in 0.5 seconds.
597 gfx::Rect down_skewport = 593 gfx::Rect down_skewport =
598 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100)); 594 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100));
599 595
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
662 EXPECT_EQ(175, move_skewport_far.height()); 658 EXPECT_EQ(175, move_skewport_far.height());
663 EXPECT_TRUE(move_skewport_far.Contains(gfx::Rect(0, 5000, 100, 100))); 659 EXPECT_TRUE(move_skewport_far.Contains(gfx::Rect(0, 5000, 100, 100)));
664 } 660 }
665 661
666 TEST(PictureLayerTilingTest, ComputeSkewportExtremeCases) { 662 TEST(PictureLayerTilingTest, ComputeSkewportExtremeCases) {
667 FakePictureLayerTilingClient client; 663 FakePictureLayerTilingClient client;
668 664
669 gfx::Size layer_bounds(200, 200); 665 gfx::Size layer_bounds(200, 200);
670 client.SetTileSize(gfx::Size(100, 100)); 666 client.SetTileSize(gfx::Size(100, 100));
671 LayerTreeSettings settings; 667 LayerTreeSettings settings;
672 scoped_refptr<FakeDisplayListRasterSource> raster_source = 668 scoped_refptr<FakeRasterSource> raster_source =
673 FakeDisplayListRasterSource::CreateFilled(layer_bounds); 669 FakeRasterSource::CreateFilled(layer_bounds);
674 scoped_ptr<TestablePictureLayerTiling> tiling = 670 scoped_ptr<TestablePictureLayerTiling> tiling =
675 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 671 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
676 &client, settings); 672 &client, settings);
677 673
678 gfx::Rect viewport1(-1918, 255860, 4010, 2356); 674 gfx::Rect viewport1(-1918, 255860, 4010, 2356);
679 gfx::Rect viewport2(-7088, -91738, 14212, 8350); 675 gfx::Rect viewport2(-7088, -91738, 14212, 8350);
680 gfx::Rect viewport3(-12730024, -158883296, 24607540, 14454512); 676 gfx::Rect viewport3(-12730024, -158883296, 24607540, 14454512);
681 double time = 1.0; 677 double time = 1.0;
682 tiling->ComputeTilePriorityRects(viewport1, 1.f, time, Occlusion()); 678 tiling->ComputeTilePriorityRects(viewport1, 1.f, time, Occlusion());
683 time += 0.016; 679 time += 0.016;
(...skipping 11 matching lines...) Expand all
695 } 691 }
696 692
697 TEST(PictureLayerTilingTest, ComputeSkewport) { 693 TEST(PictureLayerTilingTest, ComputeSkewport) {
698 FakePictureLayerTilingClient client; 694 FakePictureLayerTilingClient client;
699 695
700 gfx::Rect viewport(0, 0, 100, 100); 696 gfx::Rect viewport(0, 0, 100, 100);
701 gfx::Size layer_bounds(200, 200); 697 gfx::Size layer_bounds(200, 200);
702 698
703 client.SetTileSize(gfx::Size(100, 100)); 699 client.SetTileSize(gfx::Size(100, 100));
704 700
705 scoped_refptr<FakeDisplayListRasterSource> raster_source = 701 scoped_refptr<FakeRasterSource> raster_source =
706 FakeDisplayListRasterSource::CreateFilled(layer_bounds); 702 FakeRasterSource::CreateFilled(layer_bounds);
707 scoped_ptr<TestablePictureLayerTiling> tiling = 703 scoped_ptr<TestablePictureLayerTiling> tiling =
708 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 704 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
709 &client, LayerTreeSettings()); 705 &client, LayerTreeSettings());
710 706
711 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); 707 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion());
712 708
713 // Move viewport down 50 pixels in 0.5 seconds. 709 // Move viewport down 50 pixels in 0.5 seconds.
714 gfx::Rect down_skewport = 710 gfx::Rect down_skewport =
715 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100)); 711 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100));
716 712
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 } 753 }
758 754
759 TEST(PictureLayerTilingTest, SkewportThroughUpdateTilePriorities) { 755 TEST(PictureLayerTilingTest, SkewportThroughUpdateTilePriorities) {
760 FakePictureLayerTilingClient client; 756 FakePictureLayerTilingClient client;
761 757
762 gfx::Rect viewport(0, 0, 100, 100); 758 gfx::Rect viewport(0, 0, 100, 100);
763 gfx::Size layer_bounds(200, 200); 759 gfx::Size layer_bounds(200, 200);
764 760
765 client.SetTileSize(gfx::Size(100, 100)); 761 client.SetTileSize(gfx::Size(100, 100));
766 762
767 scoped_refptr<FakeDisplayListRasterSource> raster_source = 763 scoped_refptr<FakeRasterSource> raster_source =
768 FakeDisplayListRasterSource::CreateFilled(layer_bounds); 764 FakeRasterSource::CreateFilled(layer_bounds);
769 scoped_ptr<TestablePictureLayerTiling> tiling = 765 scoped_ptr<TestablePictureLayerTiling> tiling =
770 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 766 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
771 &client, LayerTreeSettings()); 767 &client, LayerTreeSettings());
772 768
773 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); 769 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion());
774 770
775 // Move viewport down 50 pixels in 0.5 seconds. 771 // Move viewport down 50 pixels in 0.5 seconds.
776 gfx::Rect viewport_50 = gfx::Rect(0, 50, 100, 100); 772 gfx::Rect viewport_50 = gfx::Rect(0, 50, 100, 100);
777 gfx::Rect skewport_50 = tiling->ComputeSkewport(1.5, viewport_50); 773 gfx::Rect skewport_50 = tiling->ComputeSkewport(1.5, viewport_50);
778 774
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 gfx::Size layer_bounds(1500, 1500); 827 gfx::Size layer_bounds(1500, 1500);
832 828
833 client.SetTileSize(gfx::Size(10, 10)); 829 client.SetTileSize(gfx::Size(10, 10));
834 LayerTreeSettings settings; 830 LayerTreeSettings settings;
835 831
836 // Tiling at 0.25 scale: this should create 47x47 tiles of size 10x10. 832 // Tiling at 0.25 scale: this should create 47x47 tiles of size 10x10.
837 // The reason is that each tile has a one pixel border, so tile at (1, 2) 833 // The reason is that each tile has a one pixel border, so tile at (1, 2)
838 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at 834 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at
839 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the 835 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the
840 // tiling. 836 // tiling.
841 scoped_refptr<FakeDisplayListRasterSource> raster_source = 837 scoped_refptr<FakeRasterSource> raster_source =
842 FakeDisplayListRasterSource::CreateFilled(layer_bounds); 838 FakeRasterSource::CreateFilled(layer_bounds);
843 scoped_ptr<TestablePictureLayerTiling> tiling = 839 scoped_ptr<TestablePictureLayerTiling> tiling =
844 TestablePictureLayerTiling::Create(ACTIVE_TREE, 0.25f, raster_source, 840 TestablePictureLayerTiling::Create(ACTIVE_TREE, 0.25f, raster_source,
845 &client, settings); 841 &client, settings);
846 tiling->set_resolution(HIGH_RESOLUTION); 842 tiling->set_resolution(HIGH_RESOLUTION);
847 gfx::Rect viewport_in_content_space = 843 gfx::Rect viewport_in_content_space =
848 gfx::ScaleToEnclosedRect(viewport, 0.25f); 844 gfx::ScaleToEnclosedRect(viewport, 0.25f);
849 845
850 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); 846 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion());
851 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting(); 847 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting();
852 848
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
1105 << "Current tile rect is " << geometry_rect.ToString(); 1101 << "Current tile rect is " << geometry_rect.ToString();
1106 } 1102 }
1107 1103
1108 TEST_F(PictureLayerTilingIteratorTest, 1104 TEST_F(PictureLayerTilingIteratorTest,
1109 TilesExistLargeViewportAndLayerWithSmallVisibleArea) { 1105 TilesExistLargeViewportAndLayerWithSmallVisibleArea) {
1110 gfx::Size layer_bounds(10000, 10000); 1106 gfx::Size layer_bounds(10000, 10000);
1111 client_.SetTileSize(gfx::Size(100, 100)); 1107 client_.SetTileSize(gfx::Size(100, 100));
1112 LayerTreeSettings settings; 1108 LayerTreeSettings settings;
1113 settings.tiling_interest_area_padding = 1; 1109 settings.tiling_interest_area_padding = 1;
1114 1110
1115 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1111 scoped_refptr<FakeRasterSource> raster_source =
1116 FakeDisplayListRasterSource::CreateFilled(layer_bounds); 1112 FakeRasterSource::CreateFilled(layer_bounds);
1117 tiling_ = TestablePictureLayerTiling::Create(PENDING_TREE, 1.f, raster_source, 1113 tiling_ = TestablePictureLayerTiling::Create(PENDING_TREE, 1.f, raster_source,
1118 &client_, settings); 1114 &client_, settings);
1119 tiling_->set_resolution(HIGH_RESOLUTION); 1115 tiling_->set_resolution(HIGH_RESOLUTION);
1120 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); 1116 VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds));
1121 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); 1117 VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false));
1122 1118
1123 gfx::Rect visible_rect(8000, 8000, 50, 50); 1119 gfx::Rect visible_rect(8000, 8000, 50, 50);
1124 1120
1125 tiling_->ComputeTilePriorityRects(visible_rect, // visible content rect 1121 tiling_->ComputeTilePriorityRects(visible_rect, // visible content rect
1126 1.f, // current contents scale 1122 1.f, // current contents scale
(...skipping 14 matching lines...) Expand all
1141 gfx::Size current_layer_bounds(200, 200); 1137 gfx::Size current_layer_bounds(200, 200);
1142 float current_layer_contents_scale = 1.f; 1138 float current_layer_contents_scale = 1.f;
1143 gfx::Transform current_screen_transform; 1139 gfx::Transform current_screen_transform;
1144 double current_frame_time_in_seconds = 1.0; 1140 double current_frame_time_in_seconds = 1.0;
1145 1141
1146 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1142 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1147 current_screen_transform, device_viewport); 1143 current_screen_transform, device_viewport);
1148 1144
1149 client.SetTileSize(gfx::Size(100, 100)); 1145 client.SetTileSize(gfx::Size(100, 100));
1150 1146
1151 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1147 scoped_refptr<FakeRasterSource> raster_source =
1152 FakeDisplayListRasterSource::CreateFilled(current_layer_bounds); 1148 FakeRasterSource::CreateFilled(current_layer_bounds);
1153 scoped_ptr<TestablePictureLayerTiling> tiling = 1149 scoped_ptr<TestablePictureLayerTiling> tiling =
1154 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 1150 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
1155 &client, LayerTreeSettings()); 1151 &client, LayerTreeSettings());
1156 tiling->set_resolution(HIGH_RESOLUTION); 1152 tiling->set_resolution(HIGH_RESOLUTION);
1157 1153
1158 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1154 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1159 current_layer_contents_scale, 1155 current_layer_contents_scale,
1160 current_frame_time_in_seconds, Occlusion()); 1156 current_frame_time_in_seconds, Occlusion());
1161 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting(); 1157 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting();
1162 1158
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1196 double current_frame_time_in_seconds = 1.0; 1192 double current_frame_time_in_seconds = 1.0;
1197 1193
1198 current_screen_transform.Translate(850, 0); 1194 current_screen_transform.Translate(850, 0);
1199 last_screen_transform = current_screen_transform; 1195 last_screen_transform = current_screen_transform;
1200 1196
1201 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1197 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1202 current_screen_transform, device_viewport); 1198 current_screen_transform, device_viewport);
1203 1199
1204 client.SetTileSize(gfx::Size(100, 100)); 1200 client.SetTileSize(gfx::Size(100, 100));
1205 1201
1206 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1202 scoped_refptr<FakeRasterSource> raster_source =
1207 FakeDisplayListRasterSource::CreateFilled(current_layer_bounds); 1203 FakeRasterSource::CreateFilled(current_layer_bounds);
1208 scoped_ptr<TestablePictureLayerTiling> tiling = 1204 scoped_ptr<TestablePictureLayerTiling> tiling =
1209 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 1205 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
1210 &client, LayerTreeSettings()); 1206 &client, LayerTreeSettings());
1211 tiling->set_resolution(HIGH_RESOLUTION); 1207 tiling->set_resolution(HIGH_RESOLUTION);
1212 1208
1213 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1209 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1214 current_layer_contents_scale, 1210 current_layer_contents_scale,
1215 current_frame_time_in_seconds, Occlusion()); 1211 current_frame_time_in_seconds, Occlusion());
1216 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting(); 1212 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting();
1217 1213
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1261 double current_frame_time_in_seconds = 1.0; 1257 double current_frame_time_in_seconds = 1.0;
1262 1258
1263 current_screen_transform.Translate(705, 505); 1259 current_screen_transform.Translate(705, 505);
1264 last_screen_transform = current_screen_transform; 1260 last_screen_transform = current_screen_transform;
1265 1261
1266 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1262 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1267 current_screen_transform, device_viewport); 1263 current_screen_transform, device_viewport);
1268 1264
1269 client.SetTileSize(gfx::Size(100, 100)); 1265 client.SetTileSize(gfx::Size(100, 100));
1270 1266
1271 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1267 scoped_refptr<FakeRasterSource> raster_source =
1272 FakeDisplayListRasterSource::CreateFilled(current_layer_bounds); 1268 FakeRasterSource::CreateFilled(current_layer_bounds);
1273 scoped_ptr<TestablePictureLayerTiling> tiling = 1269 scoped_ptr<TestablePictureLayerTiling> tiling =
1274 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 1270 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
1275 &client, LayerTreeSettings()); 1271 &client, LayerTreeSettings());
1276 tiling->set_resolution(HIGH_RESOLUTION); 1272 tiling->set_resolution(HIGH_RESOLUTION);
1277 1273
1278 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1274 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1279 current_layer_contents_scale, 1275 current_layer_contents_scale,
1280 current_frame_time_in_seconds, Occlusion()); 1276 current_frame_time_in_seconds, Occlusion());
1281 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting(); 1277 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting();
1282 1278
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1320 // In this configuration, only the top-left tile would be visible. 1316 // In this configuration, only the top-left tile would be visible.
1321 current_screen_transform.Translate(600, 750); 1317 current_screen_transform.Translate(600, 750);
1322 current_screen_transform.RotateAboutZAxis(45); 1318 current_screen_transform.RotateAboutZAxis(45);
1323 last_screen_transform = current_screen_transform; 1319 last_screen_transform = current_screen_transform;
1324 1320
1325 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1321 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1326 current_screen_transform, device_viewport); 1322 current_screen_transform, device_viewport);
1327 1323
1328 client.SetTileSize(gfx::Size(100, 100)); 1324 client.SetTileSize(gfx::Size(100, 100));
1329 1325
1330 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1326 scoped_refptr<FakeRasterSource> raster_source =
1331 FakeDisplayListRasterSource::CreateFilled(current_layer_bounds); 1327 FakeRasterSource::CreateFilled(current_layer_bounds);
1332 scoped_ptr<TestablePictureLayerTiling> tiling = 1328 scoped_ptr<TestablePictureLayerTiling> tiling =
1333 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 1329 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
1334 &client, LayerTreeSettings()); 1330 &client, LayerTreeSettings());
1335 tiling->set_resolution(HIGH_RESOLUTION); 1331 tiling->set_resolution(HIGH_RESOLUTION);
1336 1332
1337 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1333 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1338 current_layer_contents_scale, 1334 current_layer_contents_scale,
1339 current_frame_time_in_seconds, Occlusion()); 1335 current_frame_time_in_seconds, Occlusion());
1340 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting(); 1336 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting();
1341 1337
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1404 MathUtil::MapQuad(current_screen_transform, 1400 MathUtil::MapQuad(current_screen_transform,
1405 gfx::QuadF(gfx::RectF(0, 0, 200, 200)), 1401 gfx::QuadF(gfx::RectF(0, 0, 200, 200)),
1406 &clipped); 1402 &clipped);
1407 ASSERT_FALSE(clipped); 1403 ASSERT_FALSE(clipped);
1408 1404
1409 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1405 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1410 current_screen_transform, device_viewport); 1406 current_screen_transform, device_viewport);
1411 1407
1412 client.SetTileSize(gfx::Size(100, 100)); 1408 client.SetTileSize(gfx::Size(100, 100));
1413 1409
1414 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1410 scoped_refptr<FakeRasterSource> raster_source =
1415 FakeDisplayListRasterSource::CreateFilled(current_layer_bounds); 1411 FakeRasterSource::CreateFilled(current_layer_bounds);
1416 scoped_ptr<TestablePictureLayerTiling> tiling = 1412 scoped_ptr<TestablePictureLayerTiling> tiling =
1417 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 1413 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
1418 &client, LayerTreeSettings()); 1414 &client, LayerTreeSettings());
1419 tiling->set_resolution(HIGH_RESOLUTION); 1415 tiling->set_resolution(HIGH_RESOLUTION);
1420 1416
1421 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1417 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1422 current_layer_contents_scale, 1418 current_layer_contents_scale,
1423 current_frame_time_in_seconds, Occlusion()); 1419 current_frame_time_in_seconds, Occlusion());
1424 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting(); 1420 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting();
1425 1421
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1498 MathUtil::MapQuad(current_screen_transform, 1494 MathUtil::MapQuad(current_screen_transform,
1499 gfx::QuadF(gfx::RectF(100, 0, 100, 200)), 1495 gfx::QuadF(gfx::RectF(100, 0, 100, 200)),
1500 &clipped); 1496 &clipped);
1501 ASSERT_FALSE(clipped); 1497 ASSERT_FALSE(clipped);
1502 1498
1503 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1499 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1504 current_screen_transform, device_viewport); 1500 current_screen_transform, device_viewport);
1505 1501
1506 client.SetTileSize(gfx::Size(100, 100)); 1502 client.SetTileSize(gfx::Size(100, 100));
1507 1503
1508 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1504 scoped_refptr<FakeRasterSource> raster_source =
1509 FakeDisplayListRasterSource::CreateFilled(current_layer_bounds); 1505 FakeRasterSource::CreateFilled(current_layer_bounds);
1510 scoped_ptr<TestablePictureLayerTiling> tiling = 1506 scoped_ptr<TestablePictureLayerTiling> tiling =
1511 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 1507 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
1512 &client, LayerTreeSettings()); 1508 &client, LayerTreeSettings());
1513 tiling->set_resolution(HIGH_RESOLUTION); 1509 tiling->set_resolution(HIGH_RESOLUTION);
1514 1510
1515 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1511 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1516 current_layer_contents_scale, 1512 current_layer_contents_scale,
1517 current_frame_time_in_seconds, Occlusion()); 1513 current_frame_time_in_seconds, Occlusion());
1518 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting(); 1514 auto prioritized_tiles = tiling->UpdateAndGetAllPrioritizedTilesForTesting();
1519 1515
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1562 // Offscreen layer is coming closer to viewport at 1000 pixels per second. 1558 // Offscreen layer is coming closer to viewport at 1000 pixels per second.
1563 current_screen_transform.Translate(1800, 0); 1559 current_screen_transform.Translate(1800, 0);
1564 last_screen_transform.Translate(2800, 0); 1560 last_screen_transform.Translate(2800, 0);
1565 1561
1566 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1562 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1567 current_screen_transform, device_viewport); 1563 current_screen_transform, device_viewport);
1568 1564
1569 client.SetTileSize(gfx::Size(100, 100)); 1565 client.SetTileSize(gfx::Size(100, 100));
1570 LayerTreeSettings settings; 1566 LayerTreeSettings settings;
1571 1567
1572 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1568 scoped_refptr<FakeRasterSource> raster_source =
1573 FakeDisplayListRasterSource::CreateFilled(current_layer_bounds); 1569 FakeRasterSource::CreateFilled(current_layer_bounds);
1574 scoped_ptr<TestablePictureLayerTiling> tiling = 1570 scoped_ptr<TestablePictureLayerTiling> tiling =
1575 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 1571 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
1576 &client, settings); 1572 &client, settings);
1577 tiling->set_resolution(HIGH_RESOLUTION); 1573 tiling->set_resolution(HIGH_RESOLUTION);
1578 1574
1579 // previous ("last") frame 1575 // previous ("last") frame
1580 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1576 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1581 last_layer_contents_scale, 1577 last_layer_contents_scale,
1582 last_frame_time_in_seconds, Occlusion()); 1578 last_frame_time_in_seconds, Occlusion());
1583 1579
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1640 current_screen_transform.Translate(400, 550); 1636 current_screen_transform.Translate(400, 550);
1641 current_screen_transform.RotateAboutZAxis(45); 1637 current_screen_transform.RotateAboutZAxis(45);
1642 1638
1643 last_screen_transform.Translate(400, 550); 1639 last_screen_transform.Translate(400, 550);
1644 1640
1645 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( 1641 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace(
1646 current_screen_transform, device_viewport); 1642 current_screen_transform, device_viewport);
1647 1643
1648 client.SetTileSize(gfx::Size(100, 100)); 1644 client.SetTileSize(gfx::Size(100, 100));
1649 1645
1650 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1646 scoped_refptr<FakeRasterSource> raster_source =
1651 FakeDisplayListRasterSource::CreateFilled(current_layer_bounds); 1647 FakeRasterSource::CreateFilled(current_layer_bounds);
1652 tiling = TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 1648 tiling = TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
1653 &client, LayerTreeSettings()); 1649 &client, LayerTreeSettings());
1654 tiling->set_resolution(HIGH_RESOLUTION); 1650 tiling->set_resolution(HIGH_RESOLUTION);
1655 1651
1656 // previous ("last") frame 1652 // previous ("last") frame
1657 tiling->ComputeTilePriorityRects(viewport_in_layer_space, 1653 tiling->ComputeTilePriorityRects(viewport_in_layer_space,
1658 last_layer_contents_scale, 1654 last_layer_contents_scale,
1659 last_frame_time_in_seconds, Occlusion()); 1655 last_frame_time_in_seconds, Occlusion());
1660 1656
1661 // current frame 1657 // current frame
(...skipping 29 matching lines...) Expand all
1691 // - Viewport moves back and a new active tiling tile is created. 1687 // - Viewport moves back and a new active tiling tile is created.
1692 // Result: 1688 // Result:
1693 // - Recycle tiling does _not_ have the tile in the same location (thus it 1689 // - Recycle tiling does _not_ have the tile in the same location (thus it
1694 // will be shared next time a pending tiling is created). 1690 // will be shared next time a pending tiling is created).
1695 1691
1696 FakePictureLayerTilingClient active_client; 1692 FakePictureLayerTilingClient active_client;
1697 1693
1698 active_client.SetTileSize(gfx::Size(100, 100)); 1694 active_client.SetTileSize(gfx::Size(100, 100));
1699 LayerTreeSettings settings; 1695 LayerTreeSettings settings;
1700 1696
1701 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1697 scoped_refptr<FakeRasterSource> raster_source =
1702 FakeDisplayListRasterSource::CreateFilled(gfx::Size(10000, 10000)); 1698 FakeRasterSource::CreateFilled(gfx::Size(10000, 10000));
1703 scoped_ptr<TestablePictureLayerTiling> active_tiling = 1699 scoped_ptr<TestablePictureLayerTiling> active_tiling =
1704 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 1700 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
1705 &active_client, settings); 1701 &active_client, settings);
1706 active_tiling->set_resolution(HIGH_RESOLUTION); 1702 active_tiling->set_resolution(HIGH_RESOLUTION);
1707 // Create all tiles on this tiling. 1703 // Create all tiles on this tiling.
1708 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, 1704 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f,
1709 Occlusion()); 1705 Occlusion());
1710 1706
1711 FakePictureLayerTilingClient recycle_client; 1707 FakePictureLayerTilingClient recycle_client;
1712 recycle_client.SetTileSize(gfx::Size(100, 100)); 1708 recycle_client.SetTileSize(gfx::Size(100, 100));
1713 recycle_client.set_twin_tiling(active_tiling.get()); 1709 recycle_client.set_twin_tiling(active_tiling.get());
1714 1710
1715 raster_source = 1711 raster_source = FakeRasterSource::CreateFilled(gfx::Size(10000, 10000));
1716 FakeDisplayListRasterSource::CreateFilled(gfx::Size(10000, 10000));
1717 scoped_ptr<TestablePictureLayerTiling> recycle_tiling = 1712 scoped_ptr<TestablePictureLayerTiling> recycle_tiling =
1718 TestablePictureLayerTiling::Create(PENDING_TREE, 1.0f, raster_source, 1713 TestablePictureLayerTiling::Create(PENDING_TREE, 1.0f, raster_source,
1719 &recycle_client, settings); 1714 &recycle_client, settings);
1720 recycle_tiling->set_resolution(HIGH_RESOLUTION); 1715 recycle_tiling->set_resolution(HIGH_RESOLUTION);
1721 1716
1722 // Create all tiles on the second tiling. All tiles should be shared. 1717 // Create all tiles on the second tiling. All tiles should be shared.
1723 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1718 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f,
1724 1.0f, Occlusion()); 1719 1.0f, Occlusion());
1725 1720
1726 // Set the second tiling as recycled. 1721 // Set the second tiling as recycled.
(...skipping 16 matching lines...) Expand all
1743 1738
1744 // Ensure that we now have a tile here on both active. 1739 // Ensure that we now have a tile here on both active.
1745 EXPECT_TRUE(active_tiling->TileAt(0, 0)); 1740 EXPECT_TRUE(active_tiling->TileAt(0, 0));
1746 EXPECT_FALSE(recycle_tiling->TileAt(0, 0)); 1741 EXPECT_FALSE(recycle_tiling->TileAt(0, 0));
1747 } 1742 }
1748 1743
1749 TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) { 1744 TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) {
1750 FakePictureLayerTilingClient active_client; 1745 FakePictureLayerTilingClient active_client;
1751 active_client.SetTileSize(gfx::Size(100, 100)); 1746 active_client.SetTileSize(gfx::Size(100, 100));
1752 1747
1753 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1748 scoped_refptr<FakeRasterSource> raster_source =
1754 FakeDisplayListRasterSource::CreateFilled(gfx::Size(100, 100)); 1749 FakeRasterSource::CreateFilled(gfx::Size(100, 100));
1755 scoped_ptr<TestablePictureLayerTiling> active_tiling = 1750 scoped_ptr<TestablePictureLayerTiling> active_tiling =
1756 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source, 1751 TestablePictureLayerTiling::Create(ACTIVE_TREE, 1.0f, raster_source,
1757 &active_client, LayerTreeSettings()); 1752 &active_client, LayerTreeSettings());
1758 active_tiling->set_resolution(HIGH_RESOLUTION); 1753 active_tiling->set_resolution(HIGH_RESOLUTION);
1759 // Create all tiles on this tiling. 1754 // Create all tiles on this tiling.
1760 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, 1755 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f,
1761 Occlusion()); 1756 Occlusion());
1762 1757
1763 FakePictureLayerTilingClient recycle_client; 1758 FakePictureLayerTilingClient recycle_client;
1764 recycle_client.SetTileSize(gfx::Size(100, 100)); 1759 recycle_client.SetTileSize(gfx::Size(100, 100));
1765 recycle_client.set_twin_tiling(active_tiling.get()); 1760 recycle_client.set_twin_tiling(active_tiling.get());
1766 1761
1767 LayerTreeSettings settings; 1762 LayerTreeSettings settings;
1768 1763
1769 raster_source = 1764 raster_source = FakeRasterSource::CreateFilled(gfx::Size(100, 100));
1770 FakeDisplayListRasterSource::CreateFilled(gfx::Size(100, 100));
1771 scoped_ptr<TestablePictureLayerTiling> recycle_tiling = 1765 scoped_ptr<TestablePictureLayerTiling> recycle_tiling =
1772 TestablePictureLayerTiling::Create(PENDING_TREE, 1.0f, raster_source, 1766 TestablePictureLayerTiling::Create(PENDING_TREE, 1.0f, raster_source,
1773 &recycle_client, settings); 1767 &recycle_client, settings);
1774 recycle_tiling->set_resolution(HIGH_RESOLUTION); 1768 recycle_tiling->set_resolution(HIGH_RESOLUTION);
1775 1769
1776 // Create all tiles on the recycle tiling. All tiles should be shared. 1770 // Create all tiles on the recycle tiling. All tiles should be shared.
1777 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1771 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f,
1778 1.0f, Occlusion()); 1772 1.0f, Occlusion());
1779 1773
1780 // Set the second tiling as recycled. 1774 // Set the second tiling as recycled.
(...skipping 17 matching lines...) Expand all
1798 EXPECT_EQ(100, tiling_->TilingDataForTesting().max_texture_size().height()); 1792 EXPECT_EQ(100, tiling_->TilingDataForTesting().max_texture_size().height());
1799 EXPECT_EQ(4u, tiling_->AllTilesForTesting().size()); 1793 EXPECT_EQ(4u, tiling_->AllTilesForTesting().size());
1800 1794
1801 client_.SetTileSize(gfx::Size(250, 200)); 1795 client_.SetTileSize(gfx::Size(250, 200));
1802 1796
1803 // Tile size in the tiling should still be 150x100. 1797 // Tile size in the tiling should still be 150x100.
1804 EXPECT_EQ(150, tiling_->TilingDataForTesting().max_texture_size().width()); 1798 EXPECT_EQ(150, tiling_->TilingDataForTesting().max_texture_size().width());
1805 EXPECT_EQ(100, tiling_->TilingDataForTesting().max_texture_size().height()); 1799 EXPECT_EQ(100, tiling_->TilingDataForTesting().max_texture_size().height());
1806 1800
1807 // The layer's size isn't changed, but the tile size was. 1801 // The layer's size isn't changed, but the tile size was.
1808 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1802 scoped_refptr<FakeRasterSource> raster_source =
1809 FakeDisplayListRasterSource::CreateFilled(gfx::Size(250, 150)); 1803 FakeRasterSource::CreateFilled(gfx::Size(250, 150));
1810 tiling_->SetRasterSourceAndResize(raster_source); 1804 tiling_->SetRasterSourceAndResize(raster_source);
1811 1805
1812 // Tile size in the tiling should be resized to 250x200. 1806 // Tile size in the tiling should be resized to 250x200.
1813 EXPECT_EQ(250, tiling_->TilingDataForTesting().max_texture_size().width()); 1807 EXPECT_EQ(250, tiling_->TilingDataForTesting().max_texture_size().width());
1814 EXPECT_EQ(200, tiling_->TilingDataForTesting().max_texture_size().height()); 1808 EXPECT_EQ(200, tiling_->TilingDataForTesting().max_texture_size().height());
1815 EXPECT_EQ(0u, tiling_->AllTilesForTesting().size()); 1809 EXPECT_EQ(0u, tiling_->AllTilesForTesting().size());
1816 } 1810 }
1817 1811
1818 // This test runs into floating point issues because of big numbers. 1812 // This test runs into floating point issues because of big numbers.
1819 TEST_F(PictureLayerTilingIteratorTest, GiantRect) { 1813 TEST_F(PictureLayerTilingIteratorTest, GiantRect) {
1820 gfx::Size tile_size(256, 256); 1814 gfx::Size tile_size(256, 256);
1821 gfx::Size layer_size(33554432, 33554432); 1815 gfx::Size layer_size(33554432, 33554432);
1822 float contents_scale = 1.f; 1816 float contents_scale = 1.f;
1823 1817
1824 client_.SetTileSize(tile_size); 1818 client_.SetTileSize(tile_size);
1825 scoped_refptr<FakeDisplayListRasterSource> raster_source = 1819 scoped_refptr<FakeRasterSource> raster_source =
1826 FakeDisplayListRasterSource::CreateEmpty(layer_size); 1820 FakeRasterSource::CreateEmpty(layer_size);
1827 tiling_ = TestablePictureLayerTiling::Create(PENDING_TREE, contents_scale, 1821 tiling_ = TestablePictureLayerTiling::Create(PENDING_TREE, contents_scale,
1828 raster_source, &client_, 1822 raster_source, &client_,
1829 LayerTreeSettings()); 1823 LayerTreeSettings());
1830 1824
1831 gfx::Rect content_rect(25554432, 25554432, 950, 860); 1825 gfx::Rect content_rect(25554432, 25554432, 950, 860);
1832 VerifyTilesExactlyCoverRect(contents_scale, content_rect); 1826 VerifyTilesExactlyCoverRect(contents_scale, content_rect);
1833 } 1827 }
1834 1828
1835 } // namespace 1829 } // namespace
1836 } // namespace cc 1830 } // namespace cc
OLDNEW
« no previous file with comments | « cc/tiles/picture_layer_tiling_set_unittest.cc ('k') | cc/tiles/prioritized_tile.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698