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

Unified Diff: cc/layers/picture_layer_impl_unittest.cc

Issue 271533011: cc: Move tiling management out of draw properties calculation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: PictureImageLayerImpl unittests updated. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..81caa202653abbd0aa9d0e02ac6862c69f300680 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();
- 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);
host_impl_.pending_tree()->UpdateDrawProperties();
EXPECT_EQ(tiling->resolution(), HIGH_RESOLUTION);
@@ -1470,7 +1352,6 @@ TEST_F(PictureLayerImplTest, MarkRequiredOffscreenTiles) {
}
tile->SetPriority(PENDING_TREE, priority);
}
-
pending_layer_->MarkVisibleResourcesAsRequired();
int num_visible = 0;
@@ -1504,6 +1385,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 +1403,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 +1478,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 +1500,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 +1670,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 +1683,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());
}
@@ -2045,6 +1916,9 @@ TEST_F(PictureLayerImplTest, LayerRasterTileIterator) {
PictureLayerTiling* high_res_tiling = pending_layer_->AddTiling(1.0f);
pending_layer_->AddTiling(2.0f);
+ float max_scale = pending_layer_->MaximumTilingContentScale();
+ pending_layer_->SetContentsScale(max_scale, max_scale);
+ pending_layer_->SetContentBounds(layer_bounds);
host_impl_.SetViewportSize(gfx::Size(500, 500));
host_impl_.pending_tree()->UpdateDrawProperties();
@@ -2136,6 +2010,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);
+ pending_layer_->SetContentBounds(layer_bounds);
host_impl_.SetViewportSize(gfx::Size(500, 500));
host_impl_.pending_tree()->UpdateDrawProperties();
@@ -2174,6 +2051,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 +2152,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 +2240,44 @@ TEST_F(PictureLayerImplTest, RasterScaleChangeWithoutAnimation) {
EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f);
}
+TEST_F(PictureLayerImplTest, VerifySharedQuadState) {
+ 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(
+ scaled_draw_transform,
+ 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

Powered by Google App Engine
This is Rietveld 408576698