| 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 af9ee2d89742ac6b9f8fa886acbd87f701df11b7..7ab089dc714a4479731ac53313cb8344a2c653be 100644
|
| --- a/cc/layers/picture_layer_impl_unittest.cc
|
| +++ b/cc/layers/picture_layer_impl_unittest.cc
|
| @@ -26,6 +26,7 @@
|
| #include "cc/trees/layer_tree_impl.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "ui/gfx/rect_conversions.h"
|
| +#include "ui/gfx/size_conversions.h"
|
|
|
| namespace cc {
|
| namespace {
|
| @@ -139,6 +140,23 @@ class PictureLayerImplTest : public testing::Test {
|
| pending_layer_->DoPostCommitInitializationIfNeeded();
|
| }
|
|
|
| + void SetupDrawPropertiesAndManageTilings(
|
| + 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_factor = device_scale_factor;
|
| + layer->draw_properties().page_scale_factor = 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->ScaleAndManageTilings(animating_transform_to_screen,
|
| + maximum_animation_contents_scale);
|
| + }
|
| static void VerifyAllTilesExistAndHavePile(
|
| const PictureLayerTiling* tiling,
|
| PicturePileImpl* pile) {
|
| @@ -156,24 +174,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);
|
| + SetupDrawPropertiesAndManageTilings(pending_layer_,
|
| + contents_scale,
|
| + device_scale_factor,
|
| + page_scale_factor,
|
| + maximum_animation_contents_scale,
|
| + animating_transform);
|
| +
|
| + SetupDrawPropertiesAndManageTilings(active_layer_,
|
| + contents_scale,
|
| + device_scale_factor,
|
| + page_scale_factor,
|
| + maximum_animation_contents_scale,
|
| + animating_transform);
|
| }
|
|
|
| void ResetTilingsAndRasterScales() {
|
| @@ -210,16 +223,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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + 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();
|
| @@ -314,27 +319,12 @@ 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);
|
| + SetupDrawPropertiesAndManageTilings(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| 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);
|
| +
|
| + SetupDrawPropertiesAndManageTilings(
|
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| pending_layer_->UpdateTilePriorities();
|
|
|
| host_impl_.tile_manager()->GetPairedPictureLayers(&paired_layers);
|
| @@ -352,24 +342,12 @@ 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);
|
| + SetupDrawPropertiesAndManageTilings(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| 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);
|
| +
|
| + SetupDrawPropertiesAndManageTilings(
|
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| pending_layer_->UpdateTilePriorities();
|
|
|
| host_impl_.tile_manager()->GetPairedPictureLayers(&paired_layers);
|
| @@ -394,17 +372,7 @@ 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);
|
| + SetupDrawPropertiesAndManageTilings(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;
|
| @@ -661,19 +629,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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
|
|
| EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings());
|
| }
|
| @@ -687,23 +646,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);
|
| + SetupDrawPropertiesAndManageTilings(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());
|
| @@ -711,14 +665,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);
|
| + SetupDrawPropertiesAndManageTilings(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());
|
| @@ -726,14 +678,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);
|
| + SetupDrawPropertiesAndManageTilings(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());
|
| @@ -742,14 +692,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);
|
| + SetupDrawPropertiesAndManageTilings(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());
|
| @@ -777,18 +725,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);
|
| + SetupDrawPropertiesAndManageTilings(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());
|
| @@ -797,37 +741,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);
|
| + SetupDrawPropertiesAndManageTilings(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);
|
| + SetupDrawPropertiesAndManageTilings(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);
|
| + SetupDrawPropertiesAndManageTilings(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,
|
| @@ -961,8 +899,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);
|
| @@ -1036,14 +972,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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + 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.
|
| @@ -1053,14 +983,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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + 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
|
| @@ -1214,20 +1138,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);
|
| + SetupDrawPropertiesAndManageTilings(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.
|
| @@ -1237,14 +1156,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);
|
| + SetupDrawPropertiesAndManageTilings(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());
|
| }
|
|
|
| @@ -1258,20 +1175,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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + 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();
|
| @@ -1294,14 +1202,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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + 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();
|
| @@ -1322,20 +1224,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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + 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();
|
| @@ -1358,14 +1251,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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + 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();
|
| @@ -1394,7 +1281,6 @@ TEST_F(PictureLayerImplTest, DisallowTileDrawQuads) {
|
|
|
| SetupTrees(pending_pile, active_pile);
|
|
|
| - active_layer_->SetContentBounds(layer_bounds);
|
| active_layer_->draw_properties().visible_content_rect =
|
| gfx::Rect(layer_bounds);
|
|
|
| @@ -1759,17 +1645,8 @@ TEST_F(PictureLayerImplTest, HighResCreatedWhenBoundsShrink) {
|
| host_impl_.active_tree()->UpdateDrawProperties();
|
| EXPECT_FALSE(host_impl_.active_tree()->needs_update_draw_properties());
|
|
|
| - float result_scale_x;
|
| - float result_scale_y;
|
| - gfx::Size result_bounds;
|
| - active_layer_->CalculateContentsScale(0.5f,
|
| - 0.5f,
|
| - 0.5f,
|
| - 0.5f,
|
| - false,
|
| - &result_scale_x,
|
| - &result_scale_y,
|
| - &result_bounds);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + active_layer_, 0.5f, 0.5f, 0.5f, 0.5f, false);
|
| active_layer_->tilings()->RemoveAllTilings();
|
| PictureLayerTiling* tiling = active_layer_->tilings()->AddTiling(0.5f);
|
| active_layer_->tilings()->AddTiling(1.5f);
|
| @@ -1812,20 +1689,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(host_impl_.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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + 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());
|
|
|
| @@ -1833,14 +1702,9 @@ TEST_F(PictureLayerImplTest, NoLowResTilingWithGpuRasterization) {
|
|
|
| host_impl_.SetUseGpuRasterization(true);
|
| EXPECT_TRUE(host_impl_.use_gpu_rasterization());
|
| - pending_layer_->CalculateContentsScale(1.f,
|
| - 1.f,
|
| - 1.f,
|
| - 1.f,
|
| - false,
|
| - &result_scale_x,
|
| - &result_scale_y,
|
| - &result_bounds);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + 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());
|
| }
|
| @@ -2466,63 +2330,52 @@ TEST_F(NoLowResPictureLayerImplTest, 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);
|
| + SetupDrawPropertiesAndManageTilings(pending_layer_,
|
| + 6.f, // ideal contents scale
|
| + 3.f, // device scale
|
| + 2.f, // page scale
|
| + 1.f, // maximum animation scale
|
| + false);
|
| ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(6.f,
|
| pending_layer_->tilings()->tiling_at(0)->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);
|
| + SetupDrawPropertiesAndManageTilings(pending_layer_,
|
| + 6.6f, // ideal contents scale
|
| + 3.f, // device scale
|
| + 2.2f, // page scale
|
| + 1.f, // maximum animation scale
|
| + false);
|
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(6.6f,
|
| pending_layer_->tilings()->tiling_at(0)->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);
|
| + SetupDrawPropertiesAndManageTilings(pending_layer_,
|
| + 7.26f, // ideal contents scale
|
| + 3.3f, // device scale
|
| + 2.2f, // page scale
|
| + 1.f, // maximum animation scale
|
| + false);
|
| ASSERT_EQ(3u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(7.26f,
|
| pending_layer_->tilings()->tiling_at(0)->contents_scale());
|
|
|
| // 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);
|
| + SetupDrawPropertiesAndManageTilings(pending_layer_,
|
| + 7.26f, // ideal contents scale
|
| + 2.2f, // device scale
|
| + 3.3f, // page scale
|
| + 1.f, // maximum animation scale
|
| + false);
|
| ASSERT_EQ(3u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(7.26f,
|
| pending_layer_->tilings()->tiling_at(0)->contents_scale());
|
| @@ -2617,27 +2470,11 @@ TEST_F(NoLowResPictureLayerImplTest, 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);
|
| + SetupDrawPropertiesAndManageTilings(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| 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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| pending_layer_->UpdateTilePriorities();
|
|
|
| host_impl_.tile_manager()->GetPairedPictureLayers(&paired_layers);
|
| @@ -2655,24 +2492,11 @@ TEST_F(NoLowResPictureLayerImplTest, 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);
|
| + SetupDrawPropertiesAndManageTilings(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| 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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + pending_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| pending_layer_->UpdateTilePriorities();
|
|
|
| host_impl_.tile_manager()->GetPairedPictureLayers(&paired_layers);
|
| @@ -2697,17 +2521,7 @@ TEST_F(NoLowResPictureLayerImplTest, 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);
|
| + SetupDrawPropertiesAndManageTilings(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;
|
| @@ -2806,8 +2620,6 @@ TEST_F(NoLowResPictureLayerImplTest, 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);
|
| @@ -2876,14 +2688,8 @@ TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) {
|
| ASSERT_EQ(2u, 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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + 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.
|
| @@ -2893,14 +2699,8 @@ TEST_F(NoLowResPictureLayerImplTest, 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);
|
| + SetupDrawPropertiesAndManageTilings(
|
| + 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
|
| @@ -2926,8 +2726,6 @@ TEST_F(PictureLayerImplTest, ScaleCollision) {
|
| 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);
|
| @@ -2943,22 +2741,18 @@ TEST_F(PictureLayerImplTest, ScaleCollision) {
|
| float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
|
| EXPECT_LT(low_res_factor, 1.f);
|
|
|
| - pending_layer_->CalculateContentsScale(pending_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(active_contents_scale,
|
| - device_scale_factor,
|
| - page_scale_factor,
|
| - maximum_animation_contents_scale,
|
| - animating_transform,
|
| - &result_scale_x,
|
| - &result_scale_y,
|
| - &result_bounds);
|
| + SetupDrawPropertiesAndManageTilings(pending_layer_,
|
| + pending_contents_scale,
|
| + device_scale_factor,
|
| + page_scale_factor,
|
| + maximum_animation_contents_scale,
|
| + animating_transform);
|
| + SetupDrawPropertiesAndManageTilings(active_layer_,
|
| + active_contents_scale,
|
| + device_scale_factor,
|
| + page_scale_factor,
|
| + maximum_animation_contents_scale,
|
| + animating_transform);
|
|
|
| ASSERT_EQ(4u, pending_layer_->tilings()->num_tilings());
|
| ASSERT_EQ(4u, active_layer_->tilings()->num_tilings());
|
| @@ -3006,20 +2800,15 @@ TEST_F(NoLowResPictureLayerImplTest, 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);
|
| + SetupDrawPropertiesAndManageTilings(pending_layer_,
|
| + 1.3f, // ideal contents scale
|
| + 2.7f, // device scale
|
| + 3.2f, // page scale
|
| + 1.f, // maximum animation scale
|
| + false);
|
| EXPECT_EQ(1u, pending_layer_->tilings()->num_tilings());
|
|
|
| // All tilings should be removed when losing output surface.
|
| @@ -3029,16 +2818,61 @@ TEST_F(NoLowResPictureLayerImplTest, 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);
|
| + SetupDrawPropertiesAndManageTilings(pending_layer_,
|
| + 1.3f, // ideal contents scale
|
| + 2.7f, // device scale
|
| + 3.2f, // page scale
|
| + 1.f, // maximum animation scale
|
| + false);
|
| EXPECT_EQ(1u, pending_layer_->tilings()->num_tilings());
|
| }
|
|
|
| +TEST_F(PictureLayerImplTest, 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);
|
| +
|
| + SetupDrawPropertiesAndManageTilings(
|
| + pending_layer_, 2.5f, 1.f, 1.f, 1.f, false);
|
| + host_impl_.pending_tree()->UpdateDrawProperties();
|
| +
|
| + active_layer_->draw_properties().visible_content_rect =
|
| + gfx::Rect(layer_bounds);
|
| + host_impl_.active_tree()->UpdateDrawProperties();
|
| +
|
| + float max_contents_scale = active_layer_->MaximumTilingContentsScale();
|
| + 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);
|
| +
|
| + // SharedQuadState should have be of size 1, as we are doing AppenQuad once.
|
| + EXPECT_EQ(1u, quad_culler.shared_quad_state_list().size());
|
| + // The content_to_target_transform should be scaled by the
|
| + // MaximumTilingContentsScale on the layer.
|
| + EXPECT_EQ(scaled_draw_transform.ToString(),
|
| + quad_culler.shared_quad_state_list()[0]
|
| + ->content_to_target_transform.ToString());
|
| + // The content_bounds should be scaled by the
|
| + // MaximumTilingContentsScale on the layer.
|
| + EXPECT_EQ(gfx::Size(2500u, 5000u).ToString(),
|
| + quad_culler.shared_quad_state_list()[0]->content_bounds.ToString());
|
| + // The visible_content_rect should be scaled by the
|
| + // MaximumTilingContentsScale on the layer.
|
| + EXPECT_EQ(
|
| + gfx::Rect(0u, 0u, 2500u, 5000u).ToString(),
|
| + quad_culler.shared_quad_state_list()[0]->visible_content_rect.ToString());
|
| +}
|
| +
|
| } // namespace
|
| } // namespace cc
|
|
|