Chromium Code Reviews| Index: cc/layers/picture_layer_impl_unittest.cc |
| diff --git a/cc/layers/picture_layer_impl_unittest.cc b/cc/layers/picture_layer_impl_unittest.cc |
| index 9085a71a1e42c9e2febe59149a7b51553973da73..5c8291029cb5c8fc94b53a6a846cd047536f1203 100644 |
| --- a/cc/layers/picture_layer_impl_unittest.cc |
| +++ b/cc/layers/picture_layer_impl_unittest.cc |
| @@ -140,6 +140,22 @@ class PictureLayerImplTest : public testing::Test { |
| pending_layer_->DoPostCommitInitializationIfNeeded(); |
| } |
| + void SetupDrawPropertiesAndUpdateTilePriorities( |
| + FakePictureLayerImpl* layer, |
| + float ideal_contents_scale, |
| + float device_scale_factor, |
| + float page_scale_factor, |
| + float maximum_animation_contents_scale, |
| + bool animating_transform_to_screen) { |
| + layer->draw_properties().ideal_contents_scale = ideal_contents_scale; |
| + layer->draw_properties().device_scale = device_scale_factor; |
| + layer->draw_properties().page_scale = page_scale_factor; |
| + layer->draw_properties().maximum_animation_contents_scale = |
| + maximum_animation_contents_scale; |
| + layer->draw_properties().screen_space_transform_is_animating = |
| + animating_transform_to_screen; |
| + layer->UpdateTilePriorities(); |
| + } |
| static void VerifyAllTilesExistAndHavePile( |
| const PictureLayerTiling* tiling, |
| PicturePileImpl* pile) { |
| @@ -157,24 +173,19 @@ class PictureLayerImplTest : public testing::Test { |
| float page_scale_factor, |
| float maximum_animation_contents_scale, |
| bool animating_transform) { |
| - float result_scale_x, result_scale_y; |
| - gfx::Size result_bounds; |
| - pending_layer_->CalculateContentsScale(contents_scale, |
| - device_scale_factor, |
| - page_scale_factor, |
| - maximum_animation_contents_scale, |
| - animating_transform, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| - active_layer_->CalculateContentsScale(contents_scale, |
| - device_scale_factor, |
| - page_scale_factor, |
| - maximum_animation_contents_scale, |
| - animating_transform, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities(pending_layer_, |
| + contents_scale, |
| + device_scale_factor, |
| + page_scale_factor, |
| + maximum_animation_contents_scale, |
| + animating_transform); |
| + |
| + SetupDrawPropertiesAndUpdateTilePriorities(active_layer_, |
| + contents_scale, |
| + device_scale_factor, |
| + page_scale_factor, |
| + maximum_animation_contents_scale, |
| + animating_transform); |
| } |
| void ResetTilingsAndRasterScales() { |
| @@ -211,16 +222,8 @@ class PictureLayerImplTest : public testing::Test { |
| SetupTrees(pending_pile, active_pile); |
| - float result_scale_x, result_scale_y; |
| - gfx::Size result_bounds; |
| - active_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + active_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| // Add 1x1 rects at the centers of each tile, then re-record pile contents |
| active_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); |
| @@ -315,28 +318,10 @@ TEST_F(PictureLayerImplTest, TileManagerRegisterUnregister) { |
| EXPECT_EQ(0u, paired_layers.size()); |
| // Update tile priorities will force the layer to register itself. |
| - float dummy_contents_scale_x; |
| - float dummy_contents_scale_y; |
| - gfx::Size dummy_content_bounds; |
| - active_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &dummy_contents_scale_x, |
| - &dummy_contents_scale_y, |
| - &dummy_content_bounds); |
| - active_layer_->UpdateTilePriorities(); |
| - host_impl_.pending_tree()->UpdateDrawProperties(); |
| - pending_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &dummy_contents_scale_x, |
| - &dummy_contents_scale_y, |
| - &dummy_content_bounds); |
| - pending_layer_->UpdateTilePriorities(); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + active_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| host_impl_.tile_manager()->GetPairedPictureLayers(&paired_layers); |
| EXPECT_EQ(1u, paired_layers.size()); |
| @@ -353,25 +338,11 @@ TEST_F(PictureLayerImplTest, TileManagerRegisterUnregister) { |
| host_impl_.tile_manager()->GetPairedPictureLayers(&paired_layers); |
| EXPECT_EQ(0u, paired_layers.size()); |
| - active_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &dummy_contents_scale_x, |
| - &dummy_contents_scale_y, |
| - &dummy_content_bounds); |
| - active_layer_->UpdateTilePriorities(); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + active_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| host_impl_.pending_tree()->UpdateDrawProperties(); |
|
danakj
2014/05/21 15:01:00
this needed anymore?
|
| - pending_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &dummy_contents_scale_x, |
| - &dummy_contents_scale_y, |
| - &dummy_content_bounds); |
| - pending_layer_->UpdateTilePriorities(); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| host_impl_.tile_manager()->GetPairedPictureLayers(&paired_layers); |
| EXPECT_EQ(1u, paired_layers.size()); |
| @@ -395,17 +366,8 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { |
| Region invalidation; |
| AddDefaultTilingsWithInvalidation(invalidation); |
| - float dummy_contents_scale_x; |
| - float dummy_contents_scale_y; |
| - gfx::Size dummy_content_bounds; |
| - active_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &dummy_contents_scale_x, |
| - &dummy_contents_scale_y, |
| - &dummy_content_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + active_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| // UpdateTilePriorities with valid viewport. Should update tile viewport. |
| bool valid_for_tile_management = true; |
| @@ -662,19 +624,10 @@ TEST_F(PictureLayerImplTest, ManageTilingsWithNoRecording) { |
| scoped_refptr<FakePicturePileImpl> active_pile = |
| FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds); |
| - float result_scale_x, result_scale_y; |
| - gfx::Size result_bounds; |
| - |
| SetupTrees(pending_pile, active_pile); |
| - pending_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
| } |
| @@ -688,23 +641,18 @@ TEST_F(PictureLayerImplTest, ManageTilingsCreatesTilings) { |
| scoped_refptr<FakePicturePileImpl> active_pile = |
| FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| - float result_scale_x, result_scale_y; |
| - gfx::Size result_bounds; |
| - |
| SetupTrees(pending_pile, active_pile); |
| EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
| float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; |
| EXPECT_LT(low_res_factor, 1.f); |
| - pending_layer_->CalculateContentsScale(6.f, // ideal contents scale |
| - 3.f, // device scale |
| - 2.f, // page scale |
| - 1.f, // maximum animation scale |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities(pending_layer_, |
| + 6.f, // ideal contents scale |
| + 3.f, // device scale |
| + 2.f, // page scale |
| + 1.f, // maximum animation scale |
| + false); |
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
| EXPECT_FLOAT_EQ(6.f, |
| pending_layer_->tilings()->tiling_at(0)->contents_scale()); |
| @@ -712,14 +660,12 @@ TEST_F(PictureLayerImplTest, ManageTilingsCreatesTilings) { |
| pending_layer_->tilings()->tiling_at(1)->contents_scale()); |
| // If we change the page scale factor, then we should get new tilings. |
| - pending_layer_->CalculateContentsScale(6.6f, // ideal contents scale |
| - 3.f, // device scale |
| - 2.2f, // page scale |
| - 1.f, // maximum animation scale |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities(pending_layer_, |
| + 6.6f, // ideal contents scale |
| + 3.f, // device scale |
| + 2.2f, // page scale |
| + 1.f, // maximum animation scale |
| + false); |
| ASSERT_EQ(4u, pending_layer_->tilings()->num_tilings()); |
| EXPECT_FLOAT_EQ(6.6f, |
| pending_layer_->tilings()->tiling_at(0)->contents_scale()); |
| @@ -727,14 +673,12 @@ TEST_F(PictureLayerImplTest, ManageTilingsCreatesTilings) { |
| pending_layer_->tilings()->tiling_at(2)->contents_scale()); |
| // If we change the device scale factor, then we should get new tilings. |
| - pending_layer_->CalculateContentsScale(7.26f, // ideal contents scale |
| - 3.3f, // device scale |
| - 2.2f, // page scale |
| - 1.f, // maximum animation scale |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities(pending_layer_, |
| + 7.26f, // ideal contents scale |
| + 3.3f, // device scale |
| + 2.2f, // page scale |
| + 1.f, // maximum animation scale |
| + false); |
| ASSERT_EQ(6u, pending_layer_->tilings()->num_tilings()); |
| EXPECT_FLOAT_EQ(7.26f, |
| pending_layer_->tilings()->tiling_at(0)->contents_scale()); |
| @@ -743,14 +687,12 @@ TEST_F(PictureLayerImplTest, ManageTilingsCreatesTilings) { |
| // If we change the device scale factor, but end up at the same total scale |
| // factor somehow, then we don't get new tilings. |
| - pending_layer_->CalculateContentsScale(7.26f, // ideal contents scale |
| - 2.2f, // device scale |
| - 3.3f, // page scale |
| - 1.f, // maximum animation scale |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities(pending_layer_, |
| + 7.26f, // ideal contents scale |
| + 2.2f, // device scale |
| + 3.3f, // page scale |
| + 1.f, // maximum animation scale |
| + false); |
| ASSERT_EQ(6u, pending_layer_->tilings()->num_tilings()); |
| EXPECT_FLOAT_EQ(7.26f, |
| pending_layer_->tilings()->tiling_at(0)->contents_scale()); |
| @@ -778,18 +720,14 @@ TEST_F(PictureLayerImplTest, CreateTilingsEvenIfTwinHasNone) { |
| float device_scale = 1.7f; |
| float page_scale = 3.2f; |
| float maximum_animation_scale = 1.f; |
| - float result_scale_x, result_scale_y; |
| - gfx::Size result_bounds; |
| SetupPendingTree(valid_pile); |
| - pending_layer_->CalculateContentsScale(high_res_scale, |
| - device_scale, |
| - page_scale, |
| - maximum_animation_scale, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities(pending_layer_, |
| + high_res_scale, |
| + device_scale, |
| + page_scale, |
| + maximum_animation_scale, |
| + false); |
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
| EXPECT_FLOAT_EQ(high_res_scale, |
| pending_layer_->HighResTiling()->contents_scale()); |
| @@ -798,37 +736,31 @@ TEST_F(PictureLayerImplTest, CreateTilingsEvenIfTwinHasNone) { |
| ActivateTree(); |
| SetupPendingTree(empty_pile); |
| - pending_layer_->CalculateContentsScale(high_res_scale, |
| - device_scale, |
| - page_scale, |
| - maximum_animation_scale, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities(pending_layer_, |
| + high_res_scale, |
| + device_scale, |
| + page_scale, |
| + maximum_animation_scale, |
| + false); |
| ASSERT_EQ(2u, active_layer_->tilings()->num_tilings()); |
| ASSERT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
| ActivateTree(); |
| - active_layer_->CalculateContentsScale(high_res_scale, |
| - device_scale, |
| - page_scale, |
| - maximum_animation_scale, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities(active_layer_, |
| + high_res_scale, |
| + device_scale, |
| + page_scale, |
| + maximum_animation_scale, |
| + false); |
| ASSERT_EQ(0u, active_layer_->tilings()->num_tilings()); |
| SetupPendingTree(valid_pile); |
| - pending_layer_->CalculateContentsScale(high_res_scale, |
| - device_scale, |
| - page_scale, |
| - maximum_animation_scale, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities(pending_layer_, |
| + high_res_scale, |
| + device_scale, |
| + page_scale, |
| + maximum_animation_scale, |
| + false); |
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
| ASSERT_EQ(0u, active_layer_->tilings()->num_tilings()); |
| EXPECT_FLOAT_EQ(high_res_scale, |
| @@ -962,8 +894,6 @@ TEST_F(PictureLayerImplTest, CleanUpTilings) { |
| scoped_refptr<FakePicturePileImpl> active_pile = |
| FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| - float result_scale_x, result_scale_y; |
| - gfx::Size result_bounds; |
| std::vector<PictureLayerTiling*> used_tilings; |
| SetupTrees(pending_pile, active_pile); |
| @@ -1037,14 +967,8 @@ TEST_F(PictureLayerImplTest, CleanUpTilings) { |
| ASSERT_EQ(3u, active_layer_->tilings()->num_tilings()); |
| // Now move the ideal scale to 1.1 on the active layer. Our target stays 1.2. |
| - active_layer_->CalculateContentsScale(1.1f, |
| - device_scale, |
| - page_scale, |
| - 1.f, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + active_layer_, 1.1f, device_scale, page_scale, 1.f, false); |
| // Because the pending layer's ideal scale is still 1.0, our tilings fall |
| // in the range [1.0,1.2] and are kept. |
| @@ -1054,14 +978,8 @@ TEST_F(PictureLayerImplTest, CleanUpTilings) { |
| // Move the ideal scale on the pending layer to 1.1 as well. Our target stays |
| // 1.2 still. |
| - pending_layer_->CalculateContentsScale(1.1f, |
| - device_scale, |
| - page_scale, |
| - 1.f, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + pending_layer_, 1.1f, device_scale, page_scale, 1.f, false); |
| // Our 1.0 tiling now falls outside the range between our ideal scale and our |
| // target raster scale. But it is in our used tilings set, so nothing is |
| @@ -1215,20 +1133,15 @@ TEST_F(PictureLayerImplTest, ReleaseResources) { |
| scoped_refptr<FakePicturePileImpl> active_pile = |
| FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| - float result_scale_x, result_scale_y; |
| - gfx::Size result_bounds; |
| - |
| SetupTrees(pending_pile, active_pile); |
| EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
| - pending_layer_->CalculateContentsScale(1.3f, // ideal contents scale |
| - 2.7f, // device scale |
| - 3.2f, // page scale |
| - 1.f, // maximum animation scale |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities(pending_layer_, |
| + 1.3f, // ideal contents scale |
| + 2.7f, // device scale |
| + 3.2f, // page scale |
| + 1.f, // maximum animation scale |
| + false); |
| EXPECT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
| // All tilings should be removed when losing output surface. |
| @@ -1238,14 +1151,12 @@ TEST_F(PictureLayerImplTest, ReleaseResources) { |
| EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
| // This should create new tilings. |
| - pending_layer_->CalculateContentsScale(1.3f, // ideal contents scale |
| - 2.7f, // device scale |
| - 3.2f, // page scale |
| - 1.f, // maximum animation scale |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities(pending_layer_, |
| + 1.3f, // ideal contents scale |
| + 2.7f, // device scale |
| + 3.2f, // page scale |
| + 1.f, // maximum animation scale |
| + false); |
| EXPECT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
| } |
| @@ -1259,20 +1170,11 @@ TEST_F(PictureLayerImplTest, ClampTilesToToMaxTileSize) { |
| scoped_refptr<FakePicturePileImpl> active_pile = |
| FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| - float result_scale_x, result_scale_y; |
| - gfx::Size result_bounds; |
| - |
| SetupTrees(pending_pile, active_pile); |
| EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
| - pending_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
| pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); |
| @@ -1295,14 +1197,8 @@ TEST_F(PictureLayerImplTest, ClampTilesToToMaxTileSize) { |
| host_impl_.InitializeRenderer(FakeOutputSurface::Create3d( |
| context.Pass()).PassAs<OutputSurface>()); |
| - pending_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
| pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); |
| @@ -1323,20 +1219,11 @@ TEST_F(PictureLayerImplTest, ClampSingleTileToToMaxTileSize) { |
| scoped_refptr<FakePicturePileImpl> active_pile = |
| FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| - float result_scale_x, result_scale_y; |
| - gfx::Size result_bounds; |
| - |
| SetupTrees(pending_pile, active_pile); |
| EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
| - pending_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| ASSERT_LE(1u, pending_layer_->tilings()->num_tilings()); |
| pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); |
| @@ -1359,14 +1246,8 @@ TEST_F(PictureLayerImplTest, ClampSingleTileToToMaxTileSize) { |
| host_impl_.InitializeRenderer(FakeOutputSurface::Create3d( |
| context.Pass()).PassAs<OutputSurface>()); |
| - pending_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| ASSERT_LE(1u, pending_layer_->tilings()->num_tilings()); |
| pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); |
| @@ -1444,6 +1325,7 @@ TEST_F(PictureLayerImplTest, MarkRequiredOffscreenTiles) { |
| pending_layer_->set_fixed_tile_size(tile_size); |
| ASSERT_TRUE(pending_layer_->CanHaveTilings()); |
| PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f); |
| + pending_layer_->SetContentBounds(layer_bounds); |
|
danakj
2014/05/21 15:01:00
FakePictureLayerImpl constructor sets its bounds.
|
| host_impl_.pending_tree()->UpdateDrawProperties(); |
| EXPECT_EQ(tiling->resolution(), HIGH_RESOLUTION); |
| @@ -1504,6 +1386,8 @@ TEST_F(PictureLayerImplTest, HighResRequiredWhenUnsharedActiveAllReady) { |
| // No tiles shared. |
| pending_layer_->set_invalidation(gfx::Rect(layer_bounds)); |
| + pending_layer_->SetContentBounds(layer_bounds); |
| + |
| CreateHighLowResAndSetAllTilesVisible(); |
| active_layer_->SetAllTilesReady(); |
| @@ -1520,6 +1404,7 @@ TEST_F(PictureLayerImplTest, HighResRequiredWhenMissingHighResFlagOn) { |
| gfx::Size tile_size(100, 100); |
| SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size); |
| + pending_layer_->SetContentBounds(layer_bounds); |
| // All tiles shared (no invalidation). |
| CreateHighLowResAndSetAllTilesVisible(); |
| @@ -1594,7 +1479,7 @@ TEST_F(PictureLayerImplTest, HighResRequiredIfActiveCantHaveTiles) { |
| SetupTrees(pending_pile, active_pile); |
| pending_layer_->set_fixed_tile_size(tile_size); |
| active_layer_->set_fixed_tile_size(tile_size); |
| - |
| + pending_layer_->SetContentBounds(layer_bounds); |
| CreateHighLowResAndSetAllTilesVisible(); |
| // Active layer can't have tiles. |
| @@ -1616,6 +1501,7 @@ TEST_F(PictureLayerImplTest, HighResRequiredWhenActiveHasDifferentBounds) { |
| gfx::Size pending_layer_bounds(400, 400); |
| pending_layer_->SetBounds(pending_layer_bounds); |
| + pending_layer_->SetContentBounds(pending_layer_bounds); |
| CreateHighLowResAndSetAllTilesVisible(); |
| @@ -1785,20 +1671,12 @@ TEST_F(PictureLayerImplTest, NoLowResTilingWithGpuRasterization) { |
| gfx::Size default_tile_size(host_impl_.settings().default_tile_size); |
| gfx::Size layer_bounds(default_tile_size.width() * 4, |
| default_tile_size.height() * 4); |
| - float result_scale_x, result_scale_y; |
| - gfx::Size result_bounds; |
| SetupDefaultTrees(layer_bounds); |
| EXPECT_FALSE(pending_layer_->use_gpu_rasterization()); |
| EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
| - pending_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| // Should have a low-res and a high-res tiling. |
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
| @@ -1806,14 +1684,8 @@ TEST_F(PictureLayerImplTest, NoLowResTilingWithGpuRasterization) { |
| host_impl_.pending_tree()->SetUseGpuRasterization(true); |
| EXPECT_TRUE(pending_layer_->use_gpu_rasterization()); |
| - pending_layer_->CalculateContentsScale(1.f, |
| - 1.f, |
| - 1.f, |
| - 1.f, |
| - false, |
| - &result_scale_x, |
| - &result_scale_y, |
| - &result_bounds); |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false); |
| // Should only have the high-res tiling. |
| ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); |
| } |
| @@ -2044,6 +1916,7 @@ TEST_F(PictureLayerImplTest, LayerRasterTileIterator) { |
| pending_layer_->AddTiling(0.7f); |
| PictureLayerTiling* high_res_tiling = pending_layer_->AddTiling(1.0f); |
| pending_layer_->AddTiling(2.0f); |
| + pending_layer_->SetContentBounds(layer_bounds); |
| host_impl_.SetViewportSize(gfx::Size(500, 500)); |
| host_impl_.pending_tree()->UpdateDrawProperties(); |
| @@ -2136,6 +2009,9 @@ TEST_F(PictureLayerImplTest, LayerEvictionTileIterator) { |
| tilings.push_back(pending_layer_->AddTiling(1.0f)); |
| tilings.push_back(pending_layer_->AddTiling(2.0f)); |
| + float max_scale = pending_layer_->MaximumTilingContentScale(); |
| + pending_layer_->SetContentsScale(max_scale, max_scale); |
|
danakj
2014/05/21 15:01:00
This is wrong, the layer's contents scale should a
|
| + pending_layer_->SetContentBounds(layer_bounds); |
| host_impl_.SetViewportSize(gfx::Size(500, 500)); |
| host_impl_.pending_tree()->UpdateDrawProperties(); |
| @@ -2174,6 +2050,7 @@ TEST_F(PictureLayerImplTest, LayerEvictionTileIterator) { |
| EXPECT_FALSE(it); |
| host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(all_tiles); |
| + pending_layer_->SetContentBounds(layer_bounds); |
| std::set<Tile*> unique_tiles; |
| float expected_scales[] = {2.0f, 0.3f, 0.7f, low_res_factor, 1.0f}; |
| @@ -2274,6 +2151,7 @@ TEST_F(PictureLayerImplTest, Occlusion) { |
| scoped_refptr<FakePicturePileImpl> pending_pile = |
| FakePicturePileImpl::CreateFilledPile(layer_bounds, layer_bounds); |
| SetupPendingTree(pending_pile); |
| + pending_layer_->SetContentBounds(layer_bounds); |
| pending_layer_->SetBounds(layer_bounds); |
| ActivateTree(); |
| active_layer_->set_fixed_tile_size(tile_size); |
| @@ -2361,5 +2239,44 @@ TEST_F(PictureLayerImplTest, RasterScaleChangeWithoutAnimation) { |
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f); |
| } |
| +TEST_F(PictureLayerImplTest, VerifySharedQuadState) { |
|
danakj
2014/05/21 15:01:00
rename to SharedQuadStateContainsMaxTilingScale
|
| + MockQuadCuller quad_culler; |
| + |
| + gfx::Size tile_size(400, 400); |
| + gfx::Size layer_bounds(1000, 2000); |
| + |
| + scoped_refptr<FakePicturePileImpl> pending_pile = |
| + FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| + scoped_refptr<FakePicturePileImpl> active_pile = |
| + FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| + |
| + SetupTrees(pending_pile, active_pile); |
| + |
| + SetupDrawPropertiesAndUpdateTilePriorities( |
| + pending_layer_, 2.5f, 1.f, 1.f, 1.f, false); |
| + |
| + active_layer_->SetContentBounds(layer_bounds); |
| + active_layer_->draw_properties().visible_content_rect = |
| + gfx::Rect(layer_bounds); |
| + |
| + float max_contents_scale = active_layer_->MaximumTilingContentScale(); |
| + gfx::Transform scaled_draw_transform = active_layer_->draw_transform(); |
| + scaled_draw_transform.Scale(SK_MScalar1 / max_contents_scale, |
| + SK_MScalar1 / max_contents_scale); |
| + |
| + AppendQuadsData data; |
| + active_layer_->AppendQuads(&quad_culler, &data); |
| + |
| + EXPECT_EQ(1u, quad_culler.shared_quad_state_list().size()); |
| + EXPECT_EQ( |
|
danakj
2014/05/21 15:01:00
Add a comment to each of these EXPECT_EQ saying wh
|
| + scaled_draw_transform, |
|
danakj
2014/05/21 15:01:00
use .ToString() for each of these so we get a nice
|
| + quad_culler.shared_quad_state_list()[0]->content_to_target_transform); |
| + EXPECT_EQ(gfx::Size(2500u, 5000u).ToString(), |
| + quad_culler.shared_quad_state_list()[0]->content_bounds.ToString()); |
| + EXPECT_EQ( |
| + gfx::Rect(0u, 0u, 2500u, 5000u).ToString(), |
| + quad_culler.shared_quad_state_list()[0]->visible_content_rect.ToString()); |
| +} |
| + |
| } // namespace |
| } // namespace cc |