Index: cc/resources/picture_layer_tiling_unittest.cc |
diff --git a/cc/resources/picture_layer_tiling_unittest.cc b/cc/resources/picture_layer_tiling_unittest.cc |
index 1ed4613baf841e93bf3549661629acb373210d15..3ebcc5012c541ffeabe0f73fdde73e76e3260852 100644 |
--- a/cc/resources/picture_layer_tiling_unittest.cc |
+++ b/cc/resources/picture_layer_tiling_unittest.cc |
@@ -12,6 +12,7 @@ |
#include "cc/test/fake_output_surface.h" |
#include "cc/test/fake_output_surface_client.h" |
#include "cc/test/fake_picture_layer_tiling_client.h" |
+#include "cc/test/fake_picture_pile_impl.h" |
#include "cc/test/test_context_provider.h" |
#include "cc/test/test_shared_bitmap_manager.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -35,17 +36,6 @@ static gfx::Rect ViewportInLayerSpace( |
return ToEnclosingRect(viewport_in_layer_space); |
} |
-static void UpdateAllTilePriorities(PictureLayerTilingSet* set, |
- const gfx::Rect& visible_layer_rect, |
- float layer_contents_scale, |
- double current_frame_time_in_seconds) { |
- for (size_t i = 0; i < set->num_tilings(); ++i) { |
- set->tiling_at(i) |
- ->ComputeTilePriorityRects(visible_layer_rect, layer_contents_scale, |
- current_frame_time_in_seconds, Occlusion()); |
- } |
-} |
- |
class TestablePictureLayerTiling : public PictureLayerTiling { |
public: |
using PictureLayerTiling::SetLiveTilesRect; |
@@ -53,11 +43,11 @@ class TestablePictureLayerTiling : public PictureLayerTiling { |
static scoped_ptr<TestablePictureLayerTiling> Create( |
float contents_scale, |
- const gfx::Size& layer_bounds, |
+ scoped_refptr<RasterSource> raster_source, |
PictureLayerTilingClient* client, |
const LayerTreeSettings& settings) { |
return make_scoped_ptr(new TestablePictureLayerTiling( |
- contents_scale, layer_bounds, client, |
+ contents_scale, raster_source, client, |
settings.max_tiles_for_interest_area, |
settings.skewport_target_time_in_seconds, |
settings.skewport_extrapolation_limit_in_content_pixels)); |
@@ -70,13 +60,13 @@ class TestablePictureLayerTiling : public PictureLayerTiling { |
protected: |
TestablePictureLayerTiling(float contents_scale, |
- const gfx::Size& layer_bounds, |
+ scoped_refptr<RasterSource> raster_source, |
PictureLayerTilingClient* client, |
size_t max_tiles_for_interest_area, |
float skewport_target_time, |
int skewport_extrapolation_limit) |
: PictureLayerTiling(contents_scale, |
- layer_bounds, |
+ raster_source, |
client, |
max_tiles_for_interest_area, |
skewport_target_time, |
@@ -93,8 +83,10 @@ class PictureLayerTilingIteratorTest : public testing::Test { |
const gfx::Size& layer_bounds) { |
client_.SetTileSize(tile_size); |
client_.set_tree(PENDING_TREE); |
- tiling_ = TestablePictureLayerTiling::Create(contents_scale, layer_bounds, |
- &client_, LayerTreeSettings()); |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
+ tiling_ = TestablePictureLayerTiling::Create(contents_scale, pile, &client_, |
+ LayerTreeSettings()); |
} |
void SetLiveRectAndVerifyTiles(const gfx::Rect& live_tiles_rect) { |
@@ -206,11 +198,13 @@ TEST_F(PictureLayerTilingIteratorTest, ResizeDeletesTiles) { |
EXPECT_TRUE(tiling_->TileAt(0, 0)); |
// Stop creating tiles so that any invalidations are left as holes. |
- client_.set_allow_create_tile(false); |
+ gfx::Size new_layer_size(200, 200); |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateEmptyPileWithDefaultTileSize(new_layer_size); |
Region invalidation = |
SubtractRegions(gfx::Rect(tile_size), gfx::Rect(original_layer_size)); |
- tiling_->Resize(gfx::Size(200, 200)); |
+ tiling_->SetRasterSourceAndResize(pile); |
EXPECT_TRUE(tiling_->TileAt(0, 0)); |
tiling_->Invalidate(invalidation); |
EXPECT_FALSE(tiling_->TileAt(0, 0)); |
@@ -266,7 +260,10 @@ TEST_F(PictureLayerTilingIteratorTest, ResizeTilingOverTileBorders) { |
// Shrink the tiling so that the last tile row/column is entirely in the |
// border pixels of the interior tiles. That row/column is removed. |
- tiling_->Resize(gfx::Size(right + 1, bottom + 1)); |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ gfx::Size(right + 1, bottom + 1)); |
+ tiling_->SetRasterSourceAndResize(pile); |
EXPECT_EQ(2, tiling_->TilingDataForTesting().num_tiles_x()); |
EXPECT_EQ(3, tiling_->TilingDataForTesting().num_tiles_y()); |
@@ -283,7 +280,9 @@ TEST_F(PictureLayerTilingIteratorTest, ResizeTilingOverTileBorders) { |
// Growing outside the current right/bottom tiles border pixels should create |
// the tiles again, even though the live rect has not changed size. |
- tiling_->Resize(gfx::Size(right + 2, bottom + 2)); |
+ pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ gfx::Size(right + 2, bottom + 2)); |
+ tiling_->SetRasterSourceAndResize(pile); |
EXPECT_EQ(3, tiling_->TilingDataForTesting().num_tiles_x()); |
EXPECT_EQ(4, tiling_->TilingDataForTesting().num_tiles_y()); |
@@ -415,11 +414,13 @@ TEST_F(PictureLayerTilingIteratorTest, ResizeOverBorderPixelsDeletesTiles) { |
EXPECT_TRUE(tiling_->TileAt(0, 0)); |
// Stop creating tiles so that any invalidations are left as holes. |
- client_.set_allow_create_tile(false); |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateEmptyPileWithDefaultTileSize( |
+ gfx::Size(200, 200)); |
+ tiling_->SetRasterSourceAndResize(pile); |
Region invalidation = |
SubtractRegions(gfx::Rect(tile_size), gfx::Rect(original_layer_size)); |
- tiling_->Resize(gfx::Size(200, 200)); |
EXPECT_TRUE(tiling_->TileAt(0, 0)); |
tiling_->Invalidate(invalidation); |
EXPECT_FALSE(tiling_->TileAt(0, 0)); |
@@ -534,7 +535,6 @@ TEST_F(PictureLayerTilingIteratorTest, NonContainedDestRect) { |
TEST(PictureLayerTilingTest, SkewportLimits) { |
FakePictureLayerTilingClient client; |
client.set_tree(ACTIVE_TREE); |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Rect viewport(0, 0, 100, 100); |
gfx::Size layer_bounds(200, 200); |
@@ -543,8 +543,11 @@ TEST(PictureLayerTilingTest, SkewportLimits) { |
LayerTreeSettings settings; |
settings.max_tiles_for_interest_area = 10000; |
settings.skewport_extrapolation_limit_in_content_pixels = 75; |
- tiling = |
- TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client, settings); |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &client, settings); |
tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); |
@@ -603,15 +606,18 @@ TEST(PictureLayerTilingTest, SkewportLimits) { |
TEST(PictureLayerTilingTest, ComputeSkewport) { |
FakePictureLayerTilingClient client; |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Rect viewport(0, 0, 100, 100); |
gfx::Size layer_bounds(200, 200); |
client.SetTileSize(gfx::Size(100, 100)); |
client.set_tree(ACTIVE_TREE); |
- tiling = TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client, |
- LayerTreeSettings()); |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &client, |
+ LayerTreeSettings()); |
tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); |
@@ -663,7 +669,6 @@ TEST(PictureLayerTilingTest, ComputeSkewport) { |
TEST(PictureLayerTilingTest, ViewportDistanceWithScale) { |
FakePictureLayerTilingClient client; |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Rect viewport(0, 0, 100, 100); |
gfx::Size layer_bounds(1500, 1500); |
@@ -678,8 +683,10 @@ TEST(PictureLayerTilingTest, ViewportDistanceWithScale) { |
// for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at |
// (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the |
// tiling. |
- tiling = TestablePictureLayerTiling::Create(0.25f, layer_bounds, &client, |
- settings); |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(0.25f, pile, &client, settings); |
gfx::Rect viewport_in_content_space = |
gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f)); |
@@ -833,7 +840,7 @@ TEST(PictureLayerTilingTest, ViewportDistanceWithScale) { |
EXPECT_FLOAT_EQ(8.f, priority.distance_to_visible); |
// Test additional scales. |
- tiling = TestablePictureLayerTiling::Create(0.2f, layer_bounds, &client, |
+ tiling = TestablePictureLayerTiling::Create(0.2f, pile, &client, |
LayerTreeSettings()); |
tiling->ComputeTilePriorityRects(viewport, 1.0f, 4.0, Occlusion()); |
tiling->UpdateAllTilePrioritiesForTesting(); |
@@ -1084,7 +1091,6 @@ TEST(PictureLayerTilingTest, EmptyStartingRect) { |
TEST(PictureLayerTilingTest, TilingRasterTileIteratorStaticViewport) { |
FakePictureLayerTilingClient client; |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Rect viewport(50, 50, 100, 100); |
gfx::Size layer_bounds(800, 800); |
@@ -1097,8 +1103,10 @@ TEST(PictureLayerTilingTest, TilingRasterTileIteratorStaticViewport) { |
LayerTreeSettings settings; |
settings.max_tiles_for_interest_area = 10000; |
- tiling = |
- TestablePictureLayerTiling::Create(1.0f, layer_bounds, &client, settings); |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &client, settings); |
tiling->ComputeTilePriorityRects(viewport, 1.0f, 1.0, Occlusion()); |
tiling->UpdateAllTilePrioritiesForTesting(); |
@@ -1138,7 +1146,7 @@ TEST(PictureLayerTilingTest, TilingRasterTileIteratorStaticViewport) { |
// On the second iteration, mark everything as ready to draw (solid color). |
if (i == 1) { |
- ManagedTileState::DrawInfo& draw_info = last_tile->draw_info(); |
+ TileDrawInfo& draw_info = last_tile->draw_info(); |
draw_info.SetSolidColorForTesting(SK_ColorRED); |
} |
++it; |
@@ -1174,7 +1182,7 @@ TEST(PictureLayerTilingTest, TilingRasterTileIteratorStaticViewport) { |
// On the second iteration, mark everything as ready to draw (solid |
// color). |
if (i == 1) { |
- ManagedTileState::DrawInfo& draw_info = last_tile->draw_info(); |
+ TileDrawInfo& draw_info = last_tile->draw_info(); |
draw_info.SetSolidColorForTesting(SK_ColorRED); |
} |
} |
@@ -1194,7 +1202,6 @@ TEST(PictureLayerTilingTest, TilingRasterTileIteratorStaticViewport) { |
TEST(PictureLayerTilingTest, TilingRasterTileIteratorMovingViewport) { |
FakePictureLayerTilingClient client; |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Rect viewport(50, 0, 100, 100); |
gfx::Rect moved_viewport(50, 0, 100, 500); |
@@ -1205,8 +1212,10 @@ TEST(PictureLayerTilingTest, TilingRasterTileIteratorMovingViewport) { |
LayerTreeSettings settings; |
settings.max_tiles_for_interest_area = 10000; |
- tiling = |
- TestablePictureLayerTiling::Create(1.f, layer_bounds, &client, settings); |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(1.f, pile, &client, settings); |
tiling->ComputeTilePriorityRects(viewport, 1.0f, 1.0, Occlusion()); |
tiling->ComputeTilePriorityRects(moved_viewport, 1.0f, 2.0, Occlusion()); |
tiling->UpdateAllTilePrioritiesForTesting(); |
@@ -1346,8 +1355,9 @@ TEST_F(PictureLayerTilingIteratorTest, |
LayerTreeSettings settings; |
settings.max_tiles_for_interest_area = 1; |
- tiling_ = |
- TestablePictureLayerTiling::Create(1.f, layer_bounds, &client_, settings); |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
+ tiling_ = TestablePictureLayerTiling::Create(1.f, pile, &client_, settings); |
VerifyTilesExactlyCoverRect(1.f, gfx::Rect(layer_bounds)); |
VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false)); |
@@ -1363,61 +1373,10 @@ TEST_F(PictureLayerTilingIteratorTest, |
base::Bind(&TilesIntersectingRectExist, visible_rect, true)); |
} |
-TEST_F(PictureLayerTilingIteratorTest, AddTilingsToMatchScale) { |
- gfx::Size layer_bounds(1099, 801); |
- gfx::Size tile_size(100, 100); |
- |
- client_.SetTileSize(tile_size); |
- client_.set_tree(PENDING_TREE); |
- |
- LayerTreeSettings defaults; |
- auto active_set = PictureLayerTilingSet::Create( |
- &client_, 10000, defaults.skewport_target_time_in_seconds, |
- defaults.skewport_extrapolation_limit_in_content_pixels); |
- |
- active_set->AddTiling(1.f, layer_bounds); |
- |
- VerifyTiles(active_set->tiling_at(0), 1.f, gfx::Rect(layer_bounds), |
- base::Bind(&TileExists, false)); |
- |
- UpdateAllTilePriorities(active_set.get(), |
- gfx::Rect(layer_bounds), // visible content rect |
- 1.f, // current contents scale |
- 1.0); // current frame time |
- |
- // The active tiling has tiles now. |
- VerifyTiles(active_set->tiling_at(0), 1.f, gfx::Rect(layer_bounds), |
- base::Bind(&TileExists, true)); |
- |
- // Add the same tilings to the pending set. |
- auto pending_set = PictureLayerTilingSet::Create( |
- &client_, 10000, defaults.skewport_target_time_in_seconds, |
- defaults.skewport_extrapolation_limit_in_content_pixels); |
- Region invalidation; |
- pending_set->SyncTilingsForTesting(*active_set, layer_bounds, invalidation, |
- 0.f, client_.raster_source()); |
- |
- // The pending tiling starts with no tiles. |
- VerifyTiles(pending_set->tiling_at(0), 1.f, gfx::Rect(layer_bounds), |
- base::Bind(&TileExists, false)); |
- |
- // ComputeTilePriorityRects on the pending tiling at the same frame time. The |
- // pending tiling should get tiles. |
- UpdateAllTilePriorities(pending_set.get(), |
- gfx::Rect(layer_bounds), // visible content rect |
- 1.f, // current contents scale |
- 1.0); // current frame time |
- |
- VerifyTiles(pending_set->tiling_at(0), 1.f, gfx::Rect(layer_bounds), |
- base::Bind(&TileExists, true)); |
-} |
- |
TEST(ComputeTilePriorityRectsTest, VisibleTiles) { |
// The TilePriority of visible tiles should have zero distance_to_visible |
// and time_to_visible. |
- |
FakePictureLayerTilingClient client; |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Size device_viewport(800, 600); |
gfx::Size last_layer_bounds(200, 200); |
@@ -1431,9 +1390,13 @@ TEST(ComputeTilePriorityRectsTest, VisibleTiles) { |
client.SetTileSize(gfx::Size(100, 100)); |
client.set_tree(ACTIVE_TREE); |
- tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale |
- current_layer_bounds, &client, |
- LayerTreeSettings()); |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ current_layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &client, |
+ LayerTreeSettings()); |
tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
current_layer_contents_scale, |
@@ -1465,9 +1428,7 @@ TEST(ComputeTilePriorityRectsTest, VisibleTiles) { |
TEST(ComputeTilePriorityRectsTest, OffscreenTiles) { |
// The TilePriority of offscreen tiles (without movement) should have nonzero |
// distance_to_visible and infinite time_to_visible. |
- |
FakePictureLayerTilingClient client; |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Size device_viewport(800, 600); |
gfx::Size last_layer_bounds(200, 200); |
@@ -1485,9 +1446,13 @@ TEST(ComputeTilePriorityRectsTest, OffscreenTiles) { |
client.SetTileSize(gfx::Size(100, 100)); |
client.set_tree(ACTIVE_TREE); |
- tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale |
- current_layer_bounds, &client, |
- LayerTreeSettings()); |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ current_layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &client, |
+ LayerTreeSettings()); |
tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
current_layer_contents_scale, |
@@ -1529,9 +1494,7 @@ TEST(ComputeTilePriorityRectsTest, OffscreenTiles) { |
TEST(ComputeTilePriorityRectsTest, PartiallyOffscreenLayer) { |
// Sanity check that a layer with some tiles visible and others offscreen has |
// correct TilePriorities for each tile. |
- |
FakePictureLayerTilingClient client; |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Size device_viewport(800, 600); |
gfx::Size last_layer_bounds(200, 200); |
@@ -1549,9 +1512,13 @@ TEST(ComputeTilePriorityRectsTest, PartiallyOffscreenLayer) { |
client.SetTileSize(gfx::Size(100, 100)); |
client.set_tree(ACTIVE_TREE); |
- tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale |
- current_layer_bounds, &client, |
- LayerTreeSettings()); |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ current_layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &client, |
+ LayerTreeSettings()); |
tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
current_layer_contents_scale, |
@@ -1584,9 +1551,7 @@ TEST(ComputeTilePriorityRectsTest, PartiallyOffscreenRotatedLayer) { |
// Each tile of a layer may be affected differently by a transform; Check |
// that ComputeTilePriorityRects correctly accounts for the transform between |
// layer space and screen space. |
- |
FakePictureLayerTilingClient client; |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Size device_viewport(800, 600); |
gfx::Size last_layer_bounds(200, 200); |
@@ -1607,9 +1572,13 @@ TEST(ComputeTilePriorityRectsTest, PartiallyOffscreenRotatedLayer) { |
client.SetTileSize(gfx::Size(100, 100)); |
client.set_tree(ACTIVE_TREE); |
- tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale |
- current_layer_bounds, &client, |
- LayerTreeSettings()); |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ current_layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &client, |
+ LayerTreeSettings()); |
tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
current_layer_contents_scale, |
@@ -1650,9 +1619,7 @@ TEST(ComputeTilePriorityRectsTest, PartiallyOffscreenRotatedLayer) { |
TEST(ComputeTilePriorityRectsTest, PerspectiveLayer) { |
// Perspective transforms need to take a different code path. |
// This test checks tile priorities of a perspective layer. |
- |
FakePictureLayerTilingClient client; |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Size device_viewport(800, 600); |
gfx::Rect visible_layer_rect(0, 0, 0, 0); // offscreen. |
@@ -1689,9 +1656,13 @@ TEST(ComputeTilePriorityRectsTest, PerspectiveLayer) { |
client.SetTileSize(gfx::Size(100, 100)); |
client.set_tree(ACTIVE_TREE); |
- tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale |
- current_layer_bounds, &client, |
- LayerTreeSettings()); |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ current_layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &client, |
+ LayerTreeSettings()); |
tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
current_layer_contents_scale, |
@@ -1737,9 +1708,7 @@ TEST(ComputeTilePriorityRectsTest, PerspectiveLayer) { |
TEST(ComputeTilePriorityRectsTest, PerspectiveLayerClippedByW) { |
// Perspective transforms need to take a different code path. |
// This test checks tile priorities of a perspective layer. |
- |
FakePictureLayerTilingClient client; |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Size device_viewport(800, 600); |
gfx::Size last_layer_bounds(200, 200); |
@@ -1781,9 +1750,13 @@ TEST(ComputeTilePriorityRectsTest, PerspectiveLayerClippedByW) { |
client.SetTileSize(gfx::Size(100, 100)); |
client.set_tree(ACTIVE_TREE); |
- tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale |
- current_layer_bounds, &client, |
- LayerTreeSettings()); |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ current_layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &client, |
+ LayerTreeSettings()); |
tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
current_layer_contents_scale, |
@@ -1819,9 +1792,7 @@ TEST(ComputeTilePriorityRectsTest, PerspectiveLayerClippedByW) { |
TEST(ComputeTilePriorityRectsTest, BasicMotion) { |
// Test that time_to_visible is computed correctly when |
// there is some motion. |
- |
FakePictureLayerTilingClient client; |
- scoped_ptr<TestablePictureLayerTiling> tiling; |
gfx::Size device_viewport(800, 600); |
gfx::Rect visible_layer_rect(0, 0, 0, 0); |
@@ -1845,9 +1816,12 @@ TEST(ComputeTilePriorityRectsTest, BasicMotion) { |
client.set_tree(ACTIVE_TREE); |
LayerTreeSettings settings; |
settings.max_tiles_for_interest_area = 10000; |
- tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale |
- current_layer_bounds, &client, |
- settings); |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ current_layer_bounds); |
+ scoped_ptr<TestablePictureLayerTiling> tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &client, settings); |
// previous ("last") frame |
tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
@@ -1920,8 +1894,11 @@ TEST(ComputeTilePriorityRectsTest, RotationMotion) { |
client.SetTileSize(gfx::Size(100, 100)); |
client.set_tree(ACTIVE_TREE); |
- tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale |
- current_layer_bounds, &client, |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ current_layer_bounds); |
+ tiling = TestablePictureLayerTiling::Create(1.0f, pile, &client, |
LayerTreeSettings()); |
// previous ("last") frame |
@@ -1965,15 +1942,17 @@ TEST(PictureLayerTilingTest, RecycledTilesCleared) { |
// will be shared next time a pending tiling is created). |
FakePictureLayerTilingClient active_client; |
- scoped_ptr<TestablePictureLayerTiling> active_tiling; |
active_client.SetTileSize(gfx::Size(100, 100)); |
active_client.set_tree(ACTIVE_TREE); |
LayerTreeSettings settings; |
settings.max_tiles_for_interest_area = 10; |
- active_tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale |
- gfx::Size(10000, 10000), |
- &active_client, settings); |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ gfx::Size(10000, 10000)); |
+ scoped_ptr<TestablePictureLayerTiling> active_tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &active_client, settings); |
// Create all tiles on this tiling. |
active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, |
Occlusion()); |
@@ -1983,10 +1962,10 @@ TEST(PictureLayerTilingTest, RecycledTilesCleared) { |
recycle_client.set_tree(PENDING_TREE); |
recycle_client.set_twin_tiling(active_tiling.get()); |
- scoped_ptr<TestablePictureLayerTiling> recycle_tiling; |
- recycle_tiling = TestablePictureLayerTiling::Create( |
- 1.0f, // contents_scale |
- gfx::Size(10000, 10000), &recycle_client, settings); |
+ pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ gfx::Size(10000, 10000)); |
+ scoped_ptr<TestablePictureLayerTiling> recycle_tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &recycle_client, settings); |
// Create all tiles on the second tiling. All tiles should be shared. |
recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, |
@@ -2020,13 +1999,15 @@ TEST(PictureLayerTilingTest, RecycledTilesCleared) { |
TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) { |
FakePictureLayerTilingClient active_client; |
- scoped_ptr<TestablePictureLayerTiling> active_tiling; |
- |
active_client.SetTileSize(gfx::Size(100, 100)); |
active_client.set_tree(ACTIVE_TREE); |
- active_tiling = TestablePictureLayerTiling::Create( |
- 1.0f, // contents_scale |
- gfx::Size(100, 100), &active_client, LayerTreeSettings()); |
+ |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ gfx::Size(100, 100)); |
+ scoped_ptr<TestablePictureLayerTiling> active_tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &active_client, |
+ LayerTreeSettings()); |
// Create all tiles on this tiling. |
active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, |
Occlusion()); |
@@ -2038,10 +2019,11 @@ TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) { |
LayerTreeSettings settings; |
settings.max_tiles_for_interest_area = 10; |
- scoped_ptr<TestablePictureLayerTiling> recycle_tiling; |
- recycle_tiling = TestablePictureLayerTiling::Create( |
- 1.0f, // contents_scale |
- gfx::Size(100, 100), &recycle_client, settings); |
+ |
+ pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ gfx::Size(100, 100)); |
+ scoped_ptr<TestablePictureLayerTiling> recycle_tiling = |
+ TestablePictureLayerTiling::Create(1.0f, pile, &recycle_client, settings); |
// Create all tiles on the recycle tiling. All tiles should be shared. |
recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, |
@@ -2078,7 +2060,11 @@ TEST_F(PictureLayerTilingIteratorTest, ResizeTilesAndUpdateToCurrent) { |
EXPECT_EQ(150, tiling_->TilingDataForTesting().max_texture_size().width()); |
EXPECT_EQ(100, tiling_->TilingDataForTesting().max_texture_size().height()); |
- tiling_->Resize(gfx::Size(250, 150)); |
+ // The layer's size isn't changed, but the tile size was. |
+ scoped_refptr<FakePicturePileImpl> pile = |
+ FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
+ gfx::Size(250, 150)); |
+ tiling_->SetRasterSourceAndResize(pile); |
// Tile size in the tiling should be resized to 250x200. |
EXPECT_EQ(250, tiling_->TilingDataForTesting().max_texture_size().width()); |