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 "cc/tiles/picture_layer_tiling_set.h" | 5 #include "cc/tiles/picture_layer_tiling_set.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "cc/resources/resource_provider.h" | 10 #include "cc/resources/resource_provider.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 namespace cc { | 21 namespace cc { |
22 namespace { | 22 namespace { |
23 | 23 |
24 class TestablePictureLayerTilingSet : public PictureLayerTilingSet { | 24 class TestablePictureLayerTilingSet : public PictureLayerTilingSet { |
25 public: | 25 public: |
26 TestablePictureLayerTilingSet( | 26 TestablePictureLayerTilingSet( |
27 WhichTree tree, | 27 WhichTree tree, |
28 PictureLayerTilingClient* client, | 28 PictureLayerTilingClient* client, |
29 int tiling_interest_area_padding, | 29 int tiling_interest_area_padding, |
30 float skewport_target_time_in_seconds, | 30 float skewport_target_time_in_seconds, |
31 int skewport_extrapolation_limit_in_screen_pixels) | 31 int skewport_extrapolation_limit_in_screen_pixels, |
| 32 float max_preraster_distance) |
32 : PictureLayerTilingSet(tree, | 33 : PictureLayerTilingSet(tree, |
33 client, | 34 client, |
34 tiling_interest_area_padding, | 35 tiling_interest_area_padding, |
35 skewport_target_time_in_seconds, | 36 skewport_target_time_in_seconds, |
36 skewport_extrapolation_limit_in_screen_pixels) {} | 37 skewport_extrapolation_limit_in_screen_pixels, |
| 38 max_preraster_distance) {} |
37 | 39 |
38 using PictureLayerTilingSet::ComputeSkewport; | 40 using PictureLayerTilingSet::ComputeSkewport; |
39 using PictureLayerTilingSet::ComputeSoonBorderRect; | 41 using PictureLayerTilingSet::ComputeSoonBorderRect; |
40 using PictureLayerTilingSet::TilingsNeedUpdate; | 42 using PictureLayerTilingSet::TilingsNeedUpdate; |
41 }; | 43 }; |
42 | 44 |
43 std::unique_ptr<TestablePictureLayerTilingSet> CreateTilingSetWithSettings( | 45 std::unique_ptr<TestablePictureLayerTilingSet> CreateTilingSetWithSettings( |
44 PictureLayerTilingClient* client, | 46 PictureLayerTilingClient* client, |
45 const LayerTreeSettings& settings) { | 47 const LayerTreeSettings& settings) { |
46 return base::MakeUnique<TestablePictureLayerTilingSet>( | 48 return base::MakeUnique<TestablePictureLayerTilingSet>( |
47 ACTIVE_TREE, client, settings.tiling_interest_area_padding, | 49 ACTIVE_TREE, client, settings.tiling_interest_area_padding, |
48 settings.skewport_target_time_in_seconds, | 50 settings.skewport_target_time_in_seconds, |
49 settings.skewport_extrapolation_limit_in_screen_pixels); | 51 settings.skewport_extrapolation_limit_in_screen_pixels, |
| 52 settings.max_preraster_distance_in_screen_pixels); |
50 } | 53 } |
51 | 54 |
52 std::unique_ptr<TestablePictureLayerTilingSet> CreateTilingSet( | 55 std::unique_ptr<TestablePictureLayerTilingSet> CreateTilingSet( |
53 PictureLayerTilingClient* client) { | 56 PictureLayerTilingClient* client) { |
54 return CreateTilingSetWithSettings(client, LayerTreeSettings()); | 57 return CreateTilingSetWithSettings(client, LayerTreeSettings()); |
55 } | 58 } |
56 | 59 |
57 TEST(PictureLayerTilingSetTest, NoResources) { | 60 TEST(PictureLayerTilingSetTest, NoResources) { |
58 FakePictureLayerTilingClient client; | 61 FakePictureLayerTilingClient client; |
59 gfx::Size layer_bounds(1000, 800); | 62 gfx::Size layer_bounds(1000, 800); |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 | 322 |
320 TEST_F(PictureLayerTilingSetTestWithResources, ManyTilings_NotEqual) { | 323 TEST_F(PictureLayerTilingSetTestWithResources, ManyTilings_NotEqual) { |
321 RunTest(10, 1.f, 1.f, 4.5f, 5.f); | 324 RunTest(10, 1.f, 1.f, 4.5f, 5.f); |
322 } | 325 } |
323 | 326 |
324 TEST(PictureLayerTilingSetTest, TileSizeChange) { | 327 TEST(PictureLayerTilingSetTest, TileSizeChange) { |
325 FakePictureLayerTilingClient pending_client; | 328 FakePictureLayerTilingClient pending_client; |
326 FakePictureLayerTilingClient active_client; | 329 FakePictureLayerTilingClient active_client; |
327 std::unique_ptr<PictureLayerTilingSet> pending_set = | 330 std::unique_ptr<PictureLayerTilingSet> pending_set = |
328 PictureLayerTilingSet::Create(PENDING_TREE, &pending_client, 1000, 1.f, | 331 PictureLayerTilingSet::Create(PENDING_TREE, &pending_client, 1000, 1.f, |
329 1000); | 332 1000, 1000.f); |
330 std::unique_ptr<PictureLayerTilingSet> active_set = | 333 std::unique_ptr<PictureLayerTilingSet> active_set = |
331 PictureLayerTilingSet::Create(ACTIVE_TREE, &active_client, 1000, 1.f, | 334 PictureLayerTilingSet::Create(ACTIVE_TREE, &active_client, 1000, 1.f, |
332 1000); | 335 1000, 1000.f); |
333 | 336 |
334 gfx::Size layer_bounds(100, 100); | 337 gfx::Size layer_bounds(100, 100); |
335 scoped_refptr<FakeRasterSource> raster_source = | 338 scoped_refptr<FakeRasterSource> raster_source = |
336 FakeRasterSource::CreateFilled(layer_bounds); | 339 FakeRasterSource::CreateFilled(layer_bounds); |
337 | 340 |
338 gfx::Size tile_size1(10, 10); | 341 gfx::Size tile_size1(10, 10); |
339 gfx::Size tile_size2(30, 30); | 342 gfx::Size tile_size2(30, 30); |
340 gfx::Size tile_size3(20, 20); | 343 gfx::Size tile_size3(20, 20); |
341 | 344 |
342 pending_client.SetTileSize(tile_size1); | 345 pending_client.SetTileSize(tile_size1); |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 EXPECT_GT(active_tiles.size(), 0u); | 431 EXPECT_GT(active_tiles.size(), 0u); |
429 for (auto* tile : active_tiles) | 432 for (auto* tile : active_tiles) |
430 EXPECT_EQ(tile_size3, tile->content_rect().size()); | 433 EXPECT_EQ(tile_size3, tile->content_rect().size()); |
431 } | 434 } |
432 | 435 |
433 TEST(PictureLayerTilingSetTest, MaxContentScale) { | 436 TEST(PictureLayerTilingSetTest, MaxContentScale) { |
434 FakePictureLayerTilingClient pending_client; | 437 FakePictureLayerTilingClient pending_client; |
435 FakePictureLayerTilingClient active_client; | 438 FakePictureLayerTilingClient active_client; |
436 std::unique_ptr<PictureLayerTilingSet> pending_set = | 439 std::unique_ptr<PictureLayerTilingSet> pending_set = |
437 PictureLayerTilingSet::Create(PENDING_TREE, &pending_client, 1000, 1.f, | 440 PictureLayerTilingSet::Create(PENDING_TREE, &pending_client, 1000, 1.f, |
438 1000); | 441 1000, 1000.f); |
439 std::unique_ptr<PictureLayerTilingSet> active_set = | 442 std::unique_ptr<PictureLayerTilingSet> active_set = |
440 PictureLayerTilingSet::Create(ACTIVE_TREE, &active_client, 1000, 1.f, | 443 PictureLayerTilingSet::Create(ACTIVE_TREE, &active_client, 1000, 1.f, |
441 1000); | 444 1000, 1000.f); |
442 | 445 |
443 gfx::Size layer_bounds(100, 105); | 446 gfx::Size layer_bounds(100, 105); |
444 scoped_refptr<FakeRasterSource> raster_source = | 447 scoped_refptr<FakeRasterSource> raster_source = |
445 FakeRasterSource::CreateEmpty(layer_bounds); | 448 FakeRasterSource::CreateEmpty(layer_bounds); |
446 | 449 |
447 // Tilings can be added of any scale, the tiling client can controls this. | 450 // Tilings can be added of any scale, the tiling client can controls this. |
448 pending_set->AddTiling(1.f, raster_source); | 451 pending_set->AddTiling(1.f, raster_source); |
449 pending_set->AddTiling(2.f, raster_source); | 452 pending_set->AddTiling(2.f, raster_source); |
450 pending_set->AddTiling(3.f, raster_source); | 453 pending_set->AddTiling(3.f, raster_source); |
451 | 454 |
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
979 | 982 |
980 // This will invalidate tilings. | 983 // This will invalidate tilings. |
981 tiling_set->UpdateRasterSourceDueToLCDChange(raster_source, Region()); | 984 tiling_set->UpdateRasterSourceDueToLCDChange(raster_source, Region()); |
982 | 985 |
983 EXPECT_TRUE( | 986 EXPECT_TRUE( |
984 tiling_set->UpdateTilePriorities(viewport, 1.f, time, Occlusion(), true)); | 987 tiling_set->UpdateTilePriorities(viewport, 1.f, time, Occlusion(), true)); |
985 } | 988 } |
986 | 989 |
987 } // namespace | 990 } // namespace |
988 } // namespace cc | 991 } // namespace cc |
OLD | NEW |