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

Unified Diff: cc/resources/picture_layer_tiling_unittest.cc

Issue 13582006: Prioritize tiles near the viewport in out-of-viewport layers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use ToString() Created 7 years, 8 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
« no previous file with comments | « cc/resources/picture_layer_tiling.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 27ee39a50a8e87e099dbcfdcf4ade8faef9f26ff..5e29b826275064786933a743a10812754c712c7c 100644
--- a/cc/resources/picture_layer_tiling_unittest.cc
+++ b/cc/resources/picture_layer_tiling_unittest.cc
@@ -70,7 +70,7 @@ class PictureLayerTilingIteratorTest : public testing::Test {
void VerifyTiles(float rect_scale,
gfx::Rect rect,
- base::Callback<void(Tile*)> callback) {
+ base::Callback<void(Tile* tile)> callback) {
Region remaining = rect;
for (PictureLayerTiling::CoverageIterator iter(
tiling_.get(), rect_scale, rect);
@@ -363,8 +363,8 @@ TEST(PictureLayerTilingTest, ExpandRectSquishedVertically) {
EXPECT_TRUE(bounds.Contains(out));
}
-TEST(PictureLayerTilingTest, ExpandRectOutOfBounds) {
- gfx::Rect in(40, 50, 100, 200);
+TEST(PictureLayerTilingTest, ExpandRectOutOfBoundsFarAway) {
+ gfx::Rect in(400, 500, 100, 200);
gfx::Rect bounds(0, 0, 10, 10);
int64 target_area = 400 * 400;
gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy(
@@ -372,6 +372,29 @@ TEST(PictureLayerTilingTest, ExpandRectOutOfBounds) {
EXPECT_TRUE(out.IsEmpty());
}
+TEST(PictureLayerTilingTest, ExpandRectOutOfBoundsExpandedFullyCover) {
+ gfx::Rect in(40, 50, 100, 100);
+ gfx::Rect bounds(0, 0, 10, 10);
+ int64 target_area = 400 * 400;
+ gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy(
+ in, target_area, bounds);
+ EXPECT_EQ(bounds.ToString(), out.ToString());
+}
+
+TEST(PictureLayerTilingTest, ExpandRectOutOfBoundsExpandedPartlyCover) {
+ gfx::Rect in(600, 600, 100, 100);
+ gfx::Rect bounds(0, 0, 500, 500);
+ int64 target_area = 400 * 400;
+ gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy(
+ in, target_area, bounds);
+ EXPECT_EQ(bounds.right(), out.right());
+ EXPECT_EQ(bounds.bottom(), out.bottom());
+ EXPECT_LE(out.width() * out.height(), target_area);
+ EXPECT_GT(out.width() * out.height(),
+ target_area - out.width() - out.height());
+ EXPECT_TRUE(bounds.Contains(out));
+}
+
TEST(PictureLayerTilingTest, EmptyStartingRect) {
// If a layer has a non-invertible transform, then the starting rect
// for the layer would be empty.
@@ -396,35 +419,35 @@ TEST_F(PictureLayerTilingIteratorTest, TilesExist) {
tiling_->UpdateTilePriorities(
ACTIVE_TREE,
- layer_bounds, // device viewport
- gfx::Rect(layer_bounds), // viewport in layer space
- layer_bounds, // last layer bounds
- layer_bounds, // current layer bounds
- 1.f, // last contents scale
- 1.f, // current contents scale
- gfx::Transform(), // last screen transform
- gfx::Transform(), // current screen transform
- 1, // current frame number
- 1.0, // current frame time
- false, // store screen space quads on tiles
- 10000); // max tiles in tile manager
+ layer_bounds, // device viewport
+ gfx::Rect(layer_bounds), // viewport in layer space
+ layer_bounds, // last layer bounds
+ layer_bounds, // current layer bounds
+ 1.f, // last contents scale
+ 1.f, // current contents scale
+ gfx::Transform(), // last screen transform
+ gfx::Transform(), // current screen transform
+ 1, // current frame number
+ 1.0, // current frame time
+ false, // store screen space quads on tiles
+ 10000); // max tiles in tile manager
VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, true));
// Make the viewport rect empty. All tiles are killed and become zombies.
tiling_->UpdateTilePriorities(
ACTIVE_TREE,
- layer_bounds, // device viewport
- gfx::Rect(), // viewport in layer space
- layer_bounds, // last layer bounds
- layer_bounds, // current layer bounds
- 1.f, // last contents scale
- 1.f, // current contents scale
- gfx::Transform(), // last screen transform
- gfx::Transform(), // current screen transform
- 2, // current frame number
- 2.0, // current frame time
- false, // store screen space quads on tiles
- 10000); // max tiles in tile manager
+ layer_bounds, // device viewport
+ gfx::Rect(), // viewport in layer space
+ layer_bounds, // last layer bounds
+ layer_bounds, // current layer bounds
+ 1.f, // last contents scale
+ 1.f, // current contents scale
+ gfx::Transform(), // last screen transform
+ gfx::Transform(), // current screen transform
+ 2, // current frame number
+ 2.0, // current frame time
+ false, // store screen space quads on tiles
+ 10000); // max tiles in tile manager
VerifyTiles(1.f, gfx::Rect(layer_bounds), base::Bind(&TileExists, false));
}
« no previous file with comments | « cc/resources/picture_layer_tiling.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698