| 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 67ca4f598d6691714ff0d5df735f8851c2cf2e08..f64f1fffff7b43bc97e3d42d2cf5ec91708f1bab 100644
|
| --- a/cc/layers/picture_layer_impl_unittest.cc
|
| +++ b/cc/layers/picture_layer_impl_unittest.cc
|
| @@ -237,17 +237,21 @@ class PictureLayerImplTest : public testing::Test {
|
| host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text);
|
| }
|
|
|
| - void SetupDrawPropertiesAndUpdateTiles(FakePictureLayerImpl* layer,
|
| - float ideal_contents_scale,
|
| - float device_scale_factor,
|
| - float page_scale_factor,
|
| - float maximum_animation_contents_scale,
|
| - bool animating_transform_to_screen) {
|
| + void SetupDrawPropertiesAndUpdateTiles(
|
| + FakePictureLayerImpl* layer,
|
| + float ideal_contents_scale,
|
| + float device_scale_factor,
|
| + float page_scale_factor,
|
| + float maximum_animation_contents_scale,
|
| + float starting_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().starting_animation_contents_scale =
|
| + starting_animation_contents_scale;
|
| layer->draw_properties().screen_space_transform_is_animating =
|
| animating_transform_to_screen;
|
| bool resourceless_software_draw = false;
|
| @@ -271,20 +275,17 @@ class PictureLayerImplTest : public testing::Test {
|
| float device_scale_factor,
|
| float page_scale_factor,
|
| float maximum_animation_contents_scale,
|
| + float starting_animation_contents_scale,
|
| bool animating_transform) {
|
| - SetupDrawPropertiesAndUpdateTiles(pending_layer_,
|
| - contents_scale,
|
| - device_scale_factor,
|
| - page_scale_factor,
|
| - maximum_animation_contents_scale,
|
| - animating_transform);
|
| -
|
| - SetupDrawPropertiesAndUpdateTiles(active_layer_,
|
| - contents_scale,
|
| - device_scale_factor,
|
| - page_scale_factor,
|
| - maximum_animation_contents_scale,
|
| - animating_transform);
|
| + SetupDrawPropertiesAndUpdateTiles(
|
| + pending_layer_, contents_scale, device_scale_factor, page_scale_factor,
|
| + maximum_animation_contents_scale, starting_animation_contents_scale,
|
| + animating_transform);
|
| +
|
| + SetupDrawPropertiesAndUpdateTiles(
|
| + active_layer_, contents_scale, device_scale_factor, page_scale_factor,
|
| + maximum_animation_contents_scale, starting_animation_contents_scale,
|
| + animating_transform);
|
| }
|
|
|
| void ResetTilingsAndRasterScales() {
|
| @@ -438,7 +439,8 @@ TEST_F(PictureLayerImplTest, ExternalViewportRectForPrioritizingTiles) {
|
|
|
| SetupTreesWithInvalidation(pending_pile, active_pile, Region());
|
|
|
| - SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
|
|
| time_ticks += base::TimeDelta::FromMilliseconds(200);
|
| host_impl_.SetCurrentBeginFrameArgs(
|
| @@ -534,7 +536,8 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
|
|
|
| SetupTreesWithInvalidation(pending_pile, active_pile, Region());
|
|
|
| - SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
|
|
| // UpdateTiles with valid viewport. Should update tile viewport.
|
| // Note viewport is considered invalid if and only if in resourceless
|
| @@ -616,7 +619,8 @@ TEST_F(PictureLayerImplTest, ViewportRectForTilePriorityIsCached) {
|
|
|
| SetupTreesWithInvalidation(pending_pile, active_pile, Region());
|
|
|
| - SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
|
|
| time_ticks += base::TimeDelta::FromMilliseconds(200);
|
| host_impl_.SetCurrentBeginFrameArgs(
|
| @@ -776,6 +780,7 @@ TEST_F(PictureLayerImplTest, UpdateTilesCreatesTilings) {
|
| 3.f, // device scale
|
| 2.f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(6.f,
|
| @@ -789,6 +794,7 @@ TEST_F(PictureLayerImplTest, UpdateTilesCreatesTilings) {
|
| 3.f, // device scale
|
| 2.2f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(4u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(6.6f,
|
| @@ -802,6 +808,7 @@ TEST_F(PictureLayerImplTest, UpdateTilesCreatesTilings) {
|
| 3.3f, // device scale
|
| 2.2f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(6u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(7.26f,
|
| @@ -816,6 +823,7 @@ TEST_F(PictureLayerImplTest, UpdateTilesCreatesTilings) {
|
| 2.2f, // device scale
|
| 3.3f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(6u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(7.26f,
|
| @@ -848,6 +856,7 @@ TEST_F(PictureLayerImplTest, PendingLayerOnlyHasHighAndLowResTiling) {
|
| 3.f, // device scale
|
| 2.f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(6.f,
|
| @@ -861,6 +870,7 @@ TEST_F(PictureLayerImplTest, PendingLayerOnlyHasHighAndLowResTiling) {
|
| 3.f, // device scale
|
| 2.2f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(6.6f,
|
| @@ -874,6 +884,7 @@ TEST_F(PictureLayerImplTest, PendingLayerOnlyHasHighAndLowResTiling) {
|
| 3.3f, // device scale
|
| 2.2f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(7.26f,
|
| @@ -888,6 +899,7 @@ TEST_F(PictureLayerImplTest, PendingLayerOnlyHasHighAndLowResTiling) {
|
| 2.2f, // device scale
|
| 3.3f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(7.26f,
|
| @@ -939,11 +951,11 @@ TEST_F(PictureLayerImplTest, ZoomOutCrash) {
|
| SetupTrees(pending_pile, active_pile);
|
| ResetTilingsAndRasterScales();
|
| EXPECT_EQ(0u, active_layer_->tilings()->num_tilings());
|
| - SetContentsScaleOnBothLayers(32.0f, 1.0f, 32.0f, 1.0f, false);
|
| + SetContentsScaleOnBothLayers(32.0f, 1.0f, 32.0f, 1.0f, 0.f, false);
|
| EXPECT_EQ(32.f, active_layer_->HighResTiling()->contents_scale());
|
| host_impl_.PinchGestureBegin();
|
| - SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, 1.0f, false);
|
| - SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, 1.0f, false);
|
| + SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, 1.0f, 0.f, false);
|
| + SetContentsScaleOnBothLayers(1.0f, 1.0f, 1.0f, 1.0f, 0.f, false);
|
| EXPECT_EQ(active_layer_->tilings()->NumHighResTilings(), 1);
|
| }
|
|
|
| @@ -962,7 +974,7 @@ TEST_F(PictureLayerImplTest, PinchGestureTilings) {
|
| SetupTrees(pending_pile, active_pile);
|
| ResetTilingsAndRasterScales();
|
|
|
| - SetContentsScaleOnBothLayers(2.f, 1.0f, 2.f, 1.0f, false);
|
| + SetContentsScaleOnBothLayers(2.f, 1.0f, 2.f, 1.0f, 0.f, false);
|
| EXPECT_BOTH_EQ(num_tilings(), 2u);
|
| EXPECT_BOTH_EQ(tilings()->tiling_at(0)->contents_scale(), 2.f);
|
| EXPECT_BOTH_EQ(tilings()->tiling_at(1)->contents_scale(),
|
| @@ -976,7 +988,7 @@ TEST_F(PictureLayerImplTest, PinchGestureTilings) {
|
|
|
| // Zoom out by a small amount. We should create a tiling at half
|
| // the scale (2/kMaxScaleRatioDuringPinch).
|
| - SetContentsScaleOnBothLayers(1.8f, 1.0f, 1.8f, 1.0f, false);
|
| + SetContentsScaleOnBothLayers(1.8f, 1.0f, 1.8f, 1.0f, 0.f, false);
|
| EXPECT_EQ(3u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(2.0f,
|
| active_layer_->tilings()->tiling_at(0)->contents_scale());
|
| @@ -991,12 +1003,12 @@ TEST_F(PictureLayerImplTest, PinchGestureTilings) {
|
| // Zoom out further, close to our low-res scale factor. We should
|
| // use that tiling as high-res, and not create a new tiling.
|
| SetContentsScaleOnBothLayers(low_res_factor * 2.1f, 1.0f,
|
| - low_res_factor * 2.1f, 1.0f, false);
|
| + low_res_factor * 2.1f, 1.0f, 0.f, false);
|
| EXPECT_EQ(3u, active_layer_->tilings()->num_tilings());
|
|
|
| // Zoom in a lot now. Since we increase by increments of
|
| // kMaxScaleRatioDuringPinch, this will create a new tiling at 4.0.
|
| - SetContentsScaleOnBothLayers(3.8f, 1.0f, 3.8f, 1.f, false);
|
| + SetContentsScaleOnBothLayers(3.8f, 1.0f, 3.8f, 1.f, 0.f, false);
|
| EXPECT_EQ(4u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(4.0f,
|
| active_layer_->tilings()->tiling_at(0)->contents_scale());
|
| @@ -1017,7 +1029,7 @@ TEST_F(PictureLayerImplTest, SnappedTilingDuringZoom) {
|
| EXPECT_EQ(0u, active_layer_->tilings()->num_tilings());
|
|
|
| // Set up the high and low res tilings before pinch zoom.
|
| - SetContentsScaleOnBothLayers(0.24f, 1.0f, 0.24f, 1.0f, false);
|
| + SetContentsScaleOnBothLayers(0.24f, 1.0f, 0.24f, 1.0f, 0.f, false);
|
| EXPECT_EQ(2u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(0.24f,
|
| active_layer_->tilings()->tiling_at(0)->contents_scale());
|
| @@ -1032,7 +1044,7 @@ TEST_F(PictureLayerImplTest, SnappedTilingDuringZoom) {
|
|
|
| // Zoom out by a small amount. We should create a tiling at half
|
| // the scale (1/kMaxScaleRatioDuringPinch).
|
| - SetContentsScaleOnBothLayers(0.2f, 1.0f, 0.2f, 1.0f, false);
|
| + SetContentsScaleOnBothLayers(0.2f, 1.0f, 0.2f, 1.0f, 0.f, false);
|
| EXPECT_EQ(3u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(0.24f,
|
| active_layer_->tilings()->tiling_at(0)->contents_scale());
|
| @@ -1046,17 +1058,17 @@ TEST_F(PictureLayerImplTest, SnappedTilingDuringZoom) {
|
|
|
| // Zoom out further, close to our low-res scale factor. We should
|
| // use that tiling as high-res, and not create a new tiling.
|
| - SetContentsScaleOnBothLayers(0.1f, 1.0f, 0.1f, 1.0f, false);
|
| + SetContentsScaleOnBothLayers(0.1f, 1.0f, 0.1f, 1.0f, 0.f, false);
|
| EXPECT_EQ(3u, active_layer_->tilings()->num_tilings());
|
|
|
| // Zoom in. 0.25(desired_scale) should be snapped to 0.24 during zoom-in
|
| // because 0.25(desired_scale) is within the ratio(1.2).
|
| - SetContentsScaleOnBothLayers(0.25f, 1.0f, 0.25f, 1.0f, false);
|
| + SetContentsScaleOnBothLayers(0.25f, 1.0f, 0.25f, 1.0f, 0.f, false);
|
| EXPECT_EQ(3u, active_layer_->tilings()->num_tilings());
|
|
|
| // Zoom in a lot. Since we move in factors of two, we should get a scale that
|
| // is a power of 2 times 0.24.
|
| - SetContentsScaleOnBothLayers(1.f, 1.0f, 1.f, 1.0f, false);
|
| + SetContentsScaleOnBothLayers(1.f, 1.0f, 1.f, 1.0f, 0.f, false);
|
| EXPECT_EQ(4u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(1.92f,
|
| active_layer_->tilings()->tiling_at(0)->contents_scale());
|
| @@ -1098,7 +1110,7 @@ TEST_F(PictureLayerImplTest, CleanUpTilings) {
|
| // Changing the ideal but not creating new tilings.
|
| scale = 1.5f;
|
| page_scale = 1.5f;
|
| - SetContentsScaleOnBothLayers(scale, 1.f, page_scale, 1.f, false);
|
| + SetContentsScaleOnBothLayers(scale, 1.f, page_scale, 1.f, 0.f, false);
|
| EXPECT_EQ(2u, active_layer_->tilings()->num_tilings());
|
|
|
| // The tilings are still our target scale, so they aren't removed.
|
| @@ -1111,7 +1123,7 @@ TEST_F(PictureLayerImplTest, CleanUpTilings) {
|
| // Create a 1.2 scale tiling. Now we have 1.0 and 1.2 tilings. Ideal = 1.2.
|
| scale = 1.2f;
|
| page_scale = 1.2f;
|
| - SetContentsScaleOnBothLayers(1.2f, 1.f, page_scale, 1.f, false);
|
| + SetContentsScaleOnBothLayers(1.2f, 1.f, page_scale, 1.f, 0.f, false);
|
| ASSERT_EQ(4u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(
|
| 1.f,
|
| @@ -1131,7 +1143,7 @@ TEST_F(PictureLayerImplTest, CleanUpTilings) {
|
| ASSERT_EQ(4u, active_layer_->tilings()->num_tilings());
|
|
|
| // Now move the ideal scale to 0.5. Our target stays 1.2.
|
| - SetContentsScaleOnBothLayers(0.5f, 1.f, page_scale, 1.f, false);
|
| + SetContentsScaleOnBothLayers(0.5f, 1.f, page_scale, 1.f, 0.f, false);
|
|
|
| // The high resolution tiling is between target and ideal, so is not
|
| // removed. The low res tiling for the old ideal=1.0 scale is removed.
|
| @@ -1140,7 +1152,7 @@ TEST_F(PictureLayerImplTest, CleanUpTilings) {
|
| ASSERT_EQ(3u, active_layer_->tilings()->num_tilings());
|
|
|
| // Now move the ideal scale to 1.0. Our target stays 1.2.
|
| - SetContentsScaleOnBothLayers(1.f, 1.f, page_scale, 1.f, false);
|
| + SetContentsScaleOnBothLayers(1.f, 1.f, page_scale, 1.f, 0.f, false);
|
|
|
| // All the tilings are between are target and the ideal, so they are not
|
| // removed.
|
| @@ -1150,7 +1162,7 @@ TEST_F(PictureLayerImplTest, CleanUpTilings) {
|
|
|
| // Now move the ideal scale to 1.1 on the active layer. Our target stays 1.2.
|
| SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.1f, 1.f, page_scale, 1.f,
|
| - false);
|
| + 0.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.
|
| @@ -1161,7 +1173,7 @@ TEST_F(PictureLayerImplTest, CleanUpTilings) {
|
| // Move the ideal scale on the pending layer to 1.1 as well. Our target stays
|
| // 1.2 still.
|
| SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.1f, 1.f, page_scale, 1.f,
|
| - false);
|
| + 0.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
|
| @@ -1191,26 +1203,23 @@ TEST_F(PictureLayerImplTest, DontAddLowResDuringAnimation) {
|
| float device_scale = 1.f;
|
| float page_scale = 1.f;
|
| float maximum_animation_scale = 1.f;
|
| + float starting_animation_scale = 0.f;
|
| bool animating_transform = true;
|
|
|
| ResetTilingsAndRasterScales();
|
|
|
| // Animating, so don't create low res even if there isn't one already.
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
|
| EXPECT_BOTH_EQ(num_tilings(), 1u);
|
|
|
| // Stop animating, low res gets created.
|
| animating_transform = false;
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
|
| EXPECT_BOTH_EQ(LowResTiling()->contents_scale(), low_res_factor);
|
| EXPECT_BOTH_EQ(num_tilings(), 2u);
|
| @@ -1225,11 +1234,9 @@ TEST_F(PictureLayerImplTest, DontAddLowResDuringAnimation) {
|
| page_scale = 2.f;
|
| maximum_animation_scale = 2.f;
|
| animating_transform = true;
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
|
| EXPECT_FALSE(active_layer_->LowResTiling());
|
| EXPECT_FALSE(pending_layer_->LowResTiling());
|
| @@ -1238,11 +1245,9 @@ TEST_F(PictureLayerImplTest, DontAddLowResDuringAnimation) {
|
|
|
| // Stop animating, new low res gets created for final page scale.
|
| animating_transform = false;
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
|
| EXPECT_BOTH_EQ(LowResTiling()->contents_scale(), 2.f * low_res_factor);
|
| EXPECT_EQ(4u, active_layer_->num_tilings());
|
| @@ -1264,15 +1269,14 @@ TEST_F(PictureLayerImplTest, DontAddLowResForSmallLayers) {
|
| float device_scale = 1.f;
|
| float page_scale = 1.f;
|
| float maximum_animation_scale = 1.f;
|
| + float starting_animation_scale = 0.f;
|
| bool animating_transform = false;
|
|
|
| // Contents exactly fit on one tile at scale 1, no low res.
|
| float contents_scale = 1.f;
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), contents_scale);
|
| EXPECT_BOTH_EQ(num_tilings(), 1u);
|
|
|
| @@ -1280,11 +1284,9 @@ TEST_F(PictureLayerImplTest, DontAddLowResForSmallLayers) {
|
|
|
| // Contents that are smaller than one tile, no low res.
|
| contents_scale = 0.123f;
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), contents_scale);
|
| EXPECT_BOTH_EQ(num_tilings(), 1u);
|
|
|
| @@ -1293,11 +1295,9 @@ TEST_F(PictureLayerImplTest, DontAddLowResForSmallLayers) {
|
| // Any content bounds that would create more than one tile will
|
| // generate a low res tiling.
|
| contents_scale = 2.5f;
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), contents_scale);
|
| EXPECT_BOTH_EQ(LowResTiling()->contents_scale(),
|
| contents_scale * low_res_factor);
|
| @@ -1311,9 +1311,9 @@ TEST_F(PictureLayerImplTest, DontAddLowResForSmallLayers) {
|
| mask->SetContentBounds(layer_bounds);
|
| mask->SetDrawsContent(true);
|
|
|
| - SetupDrawPropertiesAndUpdateTiles(mask.get(), contents_scale, device_scale,
|
| - page_scale, maximum_animation_scale,
|
| - animating_transform);
|
| + SetupDrawPropertiesAndUpdateTiles(
|
| + mask.get(), contents_scale, device_scale, page_scale,
|
| + maximum_animation_scale, starting_animation_scale, animating_transform);
|
| EXPECT_EQ(mask->HighResTiling()->contents_scale(), contents_scale);
|
| EXPECT_EQ(mask->num_tilings(), 1u);
|
| }
|
| @@ -1374,7 +1374,8 @@ TEST_F(PictureLayerImplTest, HugeMasksGetScaledDown) {
|
| active_mask->ReleaseResources();
|
| pending_mask->RecreateResources();
|
| active_mask->RecreateResources();
|
| - SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
| active_mask->HighResTiling()->CreateAllTilesForTesting();
|
| EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size());
|
| EXPECT_NE(0u, mask_resource_id);
|
| @@ -1419,7 +1420,8 @@ TEST_F(PictureLayerImplTest, HugeMasksGetScaledDown) {
|
| active_mask->ReleaseResources();
|
| pending_mask->RecreateResources();
|
| active_mask->RecreateResources();
|
| - SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
| active_mask->HighResTiling()->CreateAllTilesForTesting();
|
| EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size());
|
| EXPECT_NE(0u, mask_resource_id);
|
| @@ -1540,6 +1542,7 @@ TEST_F(PictureLayerImplTest, ReleaseResources) {
|
| 1.f, // device scale
|
| 1.f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation_scale
|
| false);
|
| EXPECT_EQ(2u, pending_layer_->tilings()->num_tilings());
|
| }
|
| @@ -1575,7 +1578,8 @@ TEST_F(PictureLayerImplTest, ClampTilesToMaxTileSize) {
|
| host_impl_.InitializeRenderer(
|
| FakeOutputSurface::Create3d(context.Pass()).Pass());
|
|
|
| - SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
| ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings());
|
|
|
| pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting();
|
| @@ -1619,7 +1623,8 @@ TEST_F(PictureLayerImplTest, ClampSingleTileToToMaxTileSize) {
|
| host_impl_.InitializeRenderer(
|
| FakeOutputSurface::Create3d(context.Pass()).Pass());
|
|
|
| - SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
| ASSERT_LE(1u, active_layer_->tilings()->num_tilings());
|
|
|
| active_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting();
|
| @@ -2016,8 +2021,10 @@ TEST_F(PictureLayerImplTest,
|
|
|
| // Due to layer scale throttling, the raster contents scale is changed to 1,
|
| // while the ideal is still 2.
|
| - SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| - SetupDrawPropertiesAndUpdateTiles(active_layer_, 2.f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
| + SetupDrawPropertiesAndUpdateTiles(active_layer_, 2.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
|
|
| EXPECT_EQ(1.f, active_layer_->HighResTiling()->contents_scale());
|
| EXPECT_EQ(1.f, active_layer_->raster_contents_scale());
|
| @@ -2481,7 +2488,8 @@ TEST_F(PictureLayerImplTest, HighResCreatedWhenBoundsShrink) {
|
|
|
| // Since the MinContentsScale is 1, the 0.5 tiling should be replaced by a 1.0
|
| // tiling.
|
| - SetupDrawPropertiesAndUpdateTiles(pending_layer_, 0.5f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(pending_layer_, 0.5f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
|
|
| EXPECT_EQ(1u, pending_layer_->tilings()->num_tilings());
|
| PictureLayerTiling* tiling =
|
| @@ -2542,7 +2550,7 @@ TEST_F(PictureLayerImplTest, RequiredTilesWithGpuRasterization) {
|
| TEST_F(PictureLayerImplTest, NoTilingIfDoesNotDrawContent) {
|
| // Set up layers with tilings.
|
| SetupDefaultTrees(gfx::Size(10, 10));
|
| - SetContentsScaleOnBothLayers(1.f, 1.f, 1.f, 1.f, false);
|
| + SetContentsScaleOnBothLayers(1.f, 1.f, 1.f, 1.f, 0.f, false);
|
| pending_layer_->PushPropertiesTo(active_layer_);
|
| EXPECT_TRUE(pending_layer_->DrawsContent());
|
| EXPECT_TRUE(pending_layer_->CanHaveTilings());
|
| @@ -2569,7 +2577,7 @@ TEST_F(PictureLayerImplTest, FirstTilingDuringPinch) {
|
| // case 4.
|
| host_impl_.PinchGestureBegin();
|
| float high_res_scale = 2.3f;
|
| - SetContentsScaleOnBothLayers(high_res_scale, 1.f, 1.f, 1.f, false);
|
| + SetContentsScaleOnBothLayers(high_res_scale, 1.f, 1.f, 1.f, 0.f, false);
|
| EXPECT_EQ(4.f, pending_layer_->HighResTiling()->contents_scale());
|
| }
|
|
|
| @@ -2583,7 +2591,8 @@ TEST_F(PictureLayerImplTest, PinchingTooSmall) {
|
| float high_res_scale = 0.0001f;
|
| EXPECT_LT(high_res_scale, pending_layer_->MinimumContentsScale());
|
|
|
| - SetContentsScaleOnBothLayers(high_res_scale, 1.f, high_res_scale, 1.f, false);
|
| + SetContentsScaleOnBothLayers(high_res_scale, 1.f, high_res_scale, 1.f, 0.f,
|
| + false);
|
| EXPECT_FLOAT_EQ(pending_layer_->MinimumContentsScale(),
|
| pending_layer_->HighResTiling()->contents_scale());
|
| }
|
| @@ -2594,7 +2603,7 @@ TEST_F(PictureLayerImplTest, PinchingTooSmallWithContentsScale) {
|
| ResetTilingsAndRasterScales();
|
|
|
| float contents_scale = 0.15f;
|
| - SetContentsScaleOnBothLayers(contents_scale, 1.f, 1.f, 1.f, false);
|
| + SetContentsScaleOnBothLayers(contents_scale, 1.f, 1.f, 1.f, 0.f, false);
|
|
|
| ASSERT_GE(pending_layer_->num_tilings(), 0u);
|
| EXPECT_FLOAT_EQ(contents_scale,
|
| @@ -2607,12 +2616,70 @@ TEST_F(PictureLayerImplTest, PinchingTooSmallWithContentsScale) {
|
| pending_layer_->MinimumContentsScale());
|
|
|
| SetContentsScaleOnBothLayers(contents_scale * page_scale, 1.f, page_scale,
|
| - 1.f, false);
|
| + 1.f, 0.f, false);
|
| ASSERT_GE(pending_layer_->num_tilings(), 0u);
|
| EXPECT_FLOAT_EQ(pending_layer_->MinimumContentsScale(),
|
| pending_layer_->HighResTiling()->contents_scale());
|
| }
|
|
|
| +TEST_F(PictureLayerImplTest, ConsiderAnimationStartScaleForRasterScale) {
|
| + gfx::Size viewport_size(1000, 1000);
|
| + host_impl_.SetViewportSize(viewport_size);
|
| +
|
| + gfx::Size layer_bounds(100, 100);
|
| + SetupDefaultTrees(layer_bounds);
|
| +
|
| + float contents_scale = 2.f;
|
| + float device_scale = 1.f;
|
| + float page_scale = 1.f;
|
| + float maximum_animation_scale = 3.f;
|
| + float starting_animation_scale = 1.f;
|
| + bool animating_transform = true;
|
| +
|
| + EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
|
| +
|
| + // Maximum animation scale is greater than starting animation scale
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| + maximum_animation_scale,
|
| + starting_animation_scale, animating_transform);
|
| + EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f);
|
| +
|
| + animating_transform = false;
|
| +
|
| + // Once we stop animating, a new high-res tiling should be created.
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| + maximum_animation_scale,
|
| + starting_animation_scale, animating_transform);
|
| + EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
|
| +
|
| + // Starting animation scale greater than maximum animation scale
|
| + // Bounds at starting scale within the viewport
|
| + animating_transform = true;
|
| + starting_animation_scale = 5.f;
|
| +
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| + maximum_animation_scale,
|
| + starting_animation_scale, animating_transform);
|
| + EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 5.f);
|
| +
|
| + // Once we stop animating, a new high-res tiling should be created.
|
| + animating_transform = false;
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| + maximum_animation_scale,
|
| + starting_animation_scale, animating_transform);
|
| + EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
|
| +
|
| + // Starting Animation scale greater than maximum animation scale
|
| + // Bounds at starting scale outisde the viewport
|
| + animating_transform = true;
|
| + starting_animation_scale = 11.f;
|
| +
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| + maximum_animation_scale,
|
| + starting_animation_scale, animating_transform);
|
| + EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f);
|
| +}
|
| +
|
| TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForCpuRasterization) {
|
| gfx::Size viewport_size(1000, 1000);
|
| host_impl_.SetViewportSize(viewport_size);
|
| @@ -2624,6 +2691,7 @@ TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForCpuRasterization) {
|
| float device_scale = 1.f;
|
| float page_scale = 1.f;
|
| float maximum_animation_scale = 1.f;
|
| + float starting_animation_scale = 0.f;
|
| bool animating_transform = false;
|
|
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
|
| @@ -2634,11 +2702,9 @@ TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForCpuRasterization) {
|
| maximum_animation_scale = 3.f;
|
| contents_scale = 2.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f);
|
|
|
| // Further changes to scale during the animation should not cause a new
|
| @@ -2646,21 +2712,17 @@ TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForCpuRasterization) {
|
| contents_scale = 4.f;
|
| maximum_animation_scale = 5.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f);
|
|
|
| // Once we stop animating, a new high-res tiling should be created.
|
| animating_transform = false;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
|
|
|
| // When animating with an unknown maximum animation scale factor, a new
|
| @@ -2669,33 +2731,27 @@ TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForCpuRasterization) {
|
| contents_scale = 2.f;
|
| maximum_animation_scale = 0.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
|
|
|
| // Further changes to scale during the animation should not cause a new
|
| // high-res tiling to get created.
|
| contents_scale = 3.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
|
|
|
| // Once we stop animating, a new high-res tiling should be created.
|
| animating_transform = false;
|
| contents_scale = 4.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
|
|
|
| // When animating with a maxmium animation scale factor that is so large
|
| @@ -2706,22 +2762,18 @@ TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForCpuRasterization) {
|
| contents_scale = 2.f;
|
| maximum_animation_scale = 11.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), page_scale * device_scale);
|
|
|
| // Once we stop animating, a new high-res tiling should be created.
|
| animating_transform = false;
|
| contents_scale = 11.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 11.f);
|
|
|
| // When animating with a maxmium animation scale factor that is so large
|
| @@ -2732,22 +2784,18 @@ TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForCpuRasterization) {
|
| contents_scale = 0.1f;
|
| maximum_animation_scale = 11.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), device_scale * page_scale);
|
|
|
| // Once we stop animating, a new high-res tiling should be created.
|
| animating_transform = false;
|
| contents_scale = 12.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 12.f);
|
|
|
| // When animating toward a smaller scale, but that is still so large that the
|
| @@ -2757,22 +2805,18 @@ TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForCpuRasterization) {
|
| contents_scale = 11.f;
|
| maximum_animation_scale = 11.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), device_scale * page_scale);
|
|
|
| // Once we stop animating, a new high-res tiling should be created.
|
| animating_transform = false;
|
| contents_scale = 11.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 11.f);
|
| }
|
|
|
| @@ -2787,13 +2831,12 @@ TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForGpuRasterization) {
|
| float device_scale = 1.3f;
|
| float page_scale = 1.4f;
|
| float maximum_animation_scale = 1.f;
|
| + float starting_animation_scale = 0.f;
|
| bool animating_transform = false;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
|
|
|
| // Since we're GPU-rasterizing, starting an animation should cause tiling
|
| @@ -2802,44 +2845,36 @@ TEST_F(PictureLayerImplTest, HighResTilingDuringAnimationForGpuRasterization) {
|
| contents_scale = 2.f;
|
| maximum_animation_scale = 4.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
|
|
|
| // Further changes to scale during the animation should cause a new high-res
|
| // tiling to get created.
|
| contents_scale = 3.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 3.f);
|
|
|
| // Since we're re-rasterizing during the animation, scales smaller than 1
|
| // should be respected.
|
| contents_scale = 0.25f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 0.25f);
|
|
|
| // Once we stop animating, a new high-res tiling should be created.
|
| contents_scale = 4.f;
|
| animating_transform = false;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 4.f);
|
| }
|
|
|
| @@ -3263,35 +3298,30 @@ TEST_F(PictureLayerImplTest, RasterScaleChangeWithoutAnimation) {
|
| float device_scale = 1.f;
|
| float page_scale = 1.f;
|
| float maximum_animation_scale = 1.f;
|
| + float starting_animation_scale = 0.f;
|
| bool animating_transform = false;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 2.f);
|
|
|
| // Changing the source scale without being in an animation will cause
|
| // the layer to reset its source scale to 1.f.
|
| contents_scale = 3.f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
|
|
|
| // Further changes to the source scale will no longer be reflected in the
|
| // contents scale.
|
| contents_scale = 0.5f;
|
|
|
| - SetContentsScaleOnBothLayers(contents_scale,
|
| - device_scale,
|
| - page_scale,
|
| + SetContentsScaleOnBothLayers(contents_scale, device_scale, page_scale,
|
| maximum_animation_scale,
|
| - animating_transform);
|
| + starting_animation_scale, animating_transform);
|
| EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
|
| }
|
|
|
| @@ -3401,6 +3431,7 @@ TEST_F(NoLowResPictureLayerImplTest, ManageTilingsCreatesTilings) {
|
| 3.f, // device scale
|
| 2.f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(1u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(6.f,
|
| @@ -3412,6 +3443,7 @@ TEST_F(NoLowResPictureLayerImplTest, ManageTilingsCreatesTilings) {
|
| 3.f, // device scale
|
| 2.2f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(6.6f,
|
| @@ -3423,6 +3455,7 @@ TEST_F(NoLowResPictureLayerImplTest, ManageTilingsCreatesTilings) {
|
| 3.3f, // device scale
|
| 2.2f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(3u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(7.26f,
|
| @@ -3435,6 +3468,7 @@ TEST_F(NoLowResPictureLayerImplTest, ManageTilingsCreatesTilings) {
|
| 2.2f, // device scale
|
| 3.3f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(3u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(7.26f,
|
| @@ -3462,6 +3496,7 @@ TEST_F(NoLowResPictureLayerImplTest, PendingLayerOnlyHasHighResTiling) {
|
| 3.f, // device scale
|
| 2.f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(6.f,
|
| @@ -3473,6 +3508,7 @@ TEST_F(NoLowResPictureLayerImplTest, PendingLayerOnlyHasHighResTiling) {
|
| 3.f, // device scale
|
| 2.2f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(6.6f,
|
| @@ -3484,6 +3520,7 @@ TEST_F(NoLowResPictureLayerImplTest, PendingLayerOnlyHasHighResTiling) {
|
| 3.3f, // device scale
|
| 2.2f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(7.26f,
|
| @@ -3496,6 +3533,7 @@ TEST_F(NoLowResPictureLayerImplTest, PendingLayerOnlyHasHighResTiling) {
|
| 2.2f, // device scale
|
| 3.3f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(7.26f,
|
| @@ -3576,7 +3614,8 @@ TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
|
|
|
| SetupTreesWithInvalidation(pending_pile, active_pile, Region());
|
|
|
| - SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
|
|
| // UpdateTiles with valid viewport. Should update tile viewport.
|
| // Note viewport is considered invalid if and only if in resourceless
|
| @@ -3665,7 +3704,8 @@ TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) {
|
|
|
| ResetTilingsAndRasterScales();
|
|
|
| - SetContentsScaleOnBothLayers(scale, device_scale, page_scale, 1.f, false);
|
| + SetContentsScaleOnBothLayers(scale, device_scale, page_scale, 1.f, 0.f,
|
| + false);
|
| ASSERT_EQ(1u, active_layer_->tilings()->num_tilings());
|
|
|
| // Ensure UpdateTiles won't remove any tilings. Note this is unrelated to
|
| @@ -3683,7 +3723,8 @@ TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) {
|
| // Changing the ideal but not creating new tilings.
|
| scale *= 1.5f;
|
| page_scale *= 1.5f;
|
| - SetContentsScaleOnBothLayers(scale, device_scale, page_scale, 1.f, false);
|
| + SetContentsScaleOnBothLayers(scale, device_scale, page_scale, 1.f, 0.f,
|
| + false);
|
| ASSERT_EQ(1u, active_layer_->tilings()->num_tilings());
|
|
|
| // The tilings are still our target scale, so they aren't removed.
|
| @@ -3696,7 +3737,7 @@ TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) {
|
| // Create a 1.2 scale tiling. Now we have 1.0 and 1.2 tilings. Ideal = 1.2.
|
| scale /= 4.f;
|
| page_scale /= 4.f;
|
| - SetContentsScaleOnBothLayers(1.2f, device_scale, page_scale, 1.f, false);
|
| + SetContentsScaleOnBothLayers(1.2f, device_scale, page_scale, 1.f, 0.f, false);
|
| ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
|
| EXPECT_FLOAT_EQ(1.f,
|
| active_layer_->tilings()->tiling_at(1)->contents_scale());
|
| @@ -3711,7 +3752,7 @@ TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) {
|
| ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
|
|
|
| // Now move the ideal scale to 0.5. Our target stays 1.2.
|
| - SetContentsScaleOnBothLayers(0.5f, device_scale, page_scale, 1.f, false);
|
| + SetContentsScaleOnBothLayers(0.5f, device_scale, page_scale, 1.f, 0.f, false);
|
|
|
| // The high resolution tiling is between target and ideal, so is not
|
| // removed. The low res tiling for the old ideal=1.0 scale is removed.
|
| @@ -3720,7 +3761,7 @@ TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) {
|
| ASSERT_EQ(2u, active_layer_->tilings()->num_tilings());
|
|
|
| // Now move the ideal scale to 1.0. Our target stays 1.2.
|
| - SetContentsScaleOnBothLayers(1.f, device_scale, page_scale, 1.f, false);
|
| + SetContentsScaleOnBothLayers(1.f, device_scale, page_scale, 1.f, 0.f, false);
|
|
|
| // All the tilings are between are target and the ideal, so they are not
|
| // removed.
|
| @@ -3729,8 +3770,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.
|
| - SetupDrawPropertiesAndUpdateTiles(
|
| - active_layer_, 1.1f, device_scale, page_scale, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.1f, device_scale,
|
| + page_scale, 1.f, 0.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.
|
| @@ -3740,8 +3781,8 @@ TEST_F(NoLowResPictureLayerImplTest, CleanUpTilings) {
|
|
|
| // Move the ideal scale on the pending layer to 1.1 as well. Our target stays
|
| // 1.2 still.
|
| - SetupDrawPropertiesAndUpdateTiles(
|
| - pending_layer_, 1.1f, device_scale, page_scale, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.1f, device_scale,
|
| + page_scale, 1.f, 0.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
|
| @@ -3787,6 +3828,7 @@ TEST_F(NoLowResPictureLayerImplTest, ReleaseResources) {
|
| 2.7f, // device scale
|
| 3.2f, // page scale
|
| 1.f, // maximum animation scale
|
| + 0.f, // starting animation scale
|
| false);
|
| EXPECT_EQ(1u, pending_layer_->tilings()->num_tilings());
|
| }
|
| @@ -3807,7 +3849,8 @@ TEST_F(PictureLayerImplTest, SharedQuadStateContainsMaxTilingScale) {
|
| SetupTrees(pending_pile, active_pile);
|
|
|
| ResetTilingsAndRasterScales();
|
| - SetupDrawPropertiesAndUpdateTiles(active_layer_, 2.5f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(active_layer_, 2.5f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
|
|
| float max_contents_scale = active_layer_->MaximumTilingContentsScale();
|
| EXPECT_EQ(2.5f, max_contents_scale);
|
| @@ -4696,7 +4739,8 @@ TEST_F(PictureLayerImplTest, ChangeInViewportAllowsTilingUpdates) {
|
| // Update tiles.
|
| pending_layer_->draw_properties().visible_content_rect = viewport;
|
| pending_layer_->draw_properties().screen_space_transform = transform;
|
| - SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
| pending_layer_->HighResTiling()->UpdateAllTilePrioritiesForTesting();
|
|
|
| // Ensure we can't activate.
|
| @@ -4709,7 +4753,8 @@ TEST_F(PictureLayerImplTest, ChangeInViewportAllowsTilingUpdates) {
|
| // Update tiles.
|
| pending_layer_->draw_properties().visible_content_rect = viewport;
|
| pending_layer_->draw_properties().screen_space_transform = transform;
|
| - SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, false);
|
| + SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
|
| + false);
|
| pending_layer_->HighResTiling()->UpdateAllTilePrioritiesForTesting();
|
|
|
| // Make sure all viewport tiles (viewport from the tiling) are ready to draw.
|
|
|