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

Unified Diff: cc/resources/picture_layer_tiling_unittest.cc

Issue 1028333002: Chromium -> Mojo roll. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 9 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_set.cc ('k') | cc/resources/picture_pile.h » ('j') | 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 d4a877862164b4fa6a3ddd6bcabc04d3a380987c..5999ecd55e7b52b6005dc2faebb323de24e74a52 100644
--- a/cc/resources/picture_layer_tiling_unittest.cc
+++ b/cc/resources/picture_layer_tiling_unittest.cc
@@ -591,7 +591,7 @@ TEST(PictureLayerTilingTest, SkewportLimits) {
EXPECT_EQ(350, expand_skewport.height());
EXPECT_TRUE(expand_skewport.Contains(gfx::Rect(-50, -50, 200, 200)));
- // Expand the viewport past the limit.
+ // Expand the viewport past the limit in all directions.
gfx::Rect big_expand_skewport =
tiling->ComputeSkewport(1.5, gfx::Rect(-500, -500, 1500, 1500));
@@ -600,6 +600,23 @@ TEST(PictureLayerTilingTest, SkewportLimits) {
EXPECT_EQ(1650, big_expand_skewport.width());
EXPECT_EQ(1650, big_expand_skewport.height());
EXPECT_TRUE(big_expand_skewport.Contains(gfx::Rect(-500, -500, 1500, 1500)));
+
+ // Shrink the skewport in all directions.
+ gfx::Rect shrink_viewport =
+ tiling->ComputeSkewport(1.5, gfx::Rect(0, 0, 100, 100));
+ EXPECT_EQ(0, shrink_viewport.x());
+ EXPECT_EQ(0, shrink_viewport.y());
+ EXPECT_EQ(100, shrink_viewport.width());
+ EXPECT_EQ(100, shrink_viewport.height());
+
+ // Move the skewport really far in one direction.
+ gfx::Rect move_skewport_far =
+ tiling->ComputeSkewport(1.5, gfx::Rect(0, 5000, 100, 100));
+ EXPECT_EQ(0, move_skewport_far.x());
+ EXPECT_EQ(5000, move_skewport_far.y());
+ EXPECT_EQ(100, move_skewport_far.width());
+ EXPECT_EQ(175, move_skewport_far.height());
+ EXPECT_TRUE(move_skewport_far.Contains(gfx::Rect(0, 5000, 100, 100)));
}
TEST(PictureLayerTilingTest, ComputeSkewport) {
@@ -665,6 +682,75 @@ TEST(PictureLayerTilingTest, ComputeSkewport) {
EXPECT_EQ(160, expanded_skewport.height());
}
+TEST(PictureLayerTilingTest, SkewportThroughUpdateTilePriorities) {
+ FakePictureLayerTilingClient client;
+
+ gfx::Rect viewport(0, 0, 100, 100);
+ gfx::Size layer_bounds(200, 200);
+
+ client.SetTileSize(gfx::Size(100, 100));
+ client.set_tree(ACTIVE_TREE);
+
+ 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());
+
+ // Move viewport down 50 pixels in 0.5 seconds.
+ gfx::Rect viewport_50 = gfx::Rect(0, 50, 100, 100);
+ gfx::Rect skewport_50 = tiling->ComputeSkewport(1.5, viewport_50);
+
+ EXPECT_EQ(gfx::Rect(0, 50, 100, 200), skewport_50);
+ tiling->ComputeTilePriorityRects(viewport_50, 1.f, 1.5, Occlusion());
+
+ gfx::Rect viewport_100 = gfx::Rect(0, 100, 100, 100);
+ gfx::Rect skewport_100 = tiling->ComputeSkewport(2.0, viewport_100);
+
+ EXPECT_EQ(gfx::Rect(0, 100, 100, 200), skewport_100);
+ tiling->ComputeTilePriorityRects(viewport_100, 1.f, 2.0, Occlusion());
+
+ // Advance time, but not the viewport.
+ gfx::Rect result = tiling->ComputeSkewport(2.5, viewport_100);
+ // Since the history did advance, we should still get a skewport but a smaller
+ // one.
+ EXPECT_EQ(gfx::Rect(0, 100, 100, 150), result);
+ tiling->ComputeTilePriorityRects(viewport_100, 1.f, 2.5, Occlusion());
+
+ // Advance time again.
+ result = tiling->ComputeSkewport(3.0, viewport_100);
+ EXPECT_EQ(viewport_100, result);
+ tiling->ComputeTilePriorityRects(viewport_100, 1.f, 3.0, Occlusion());
+
+ // Ensure we have a skewport.
+ gfx::Rect viewport_150 = gfx::Rect(0, 150, 100, 100);
+ gfx::Rect skewport_150 = tiling->ComputeSkewport(3.5, viewport_150);
+ EXPECT_EQ(gfx::Rect(0, 150, 100, 150), skewport_150);
+ tiling->ComputeTilePriorityRects(viewport_150, 1.f, 3.5, Occlusion());
+
+ // Advance the viewport, but not the time.
+ gfx::Rect viewport_200 = gfx::Rect(0, 200, 100, 100);
+ gfx::Rect skewport_200 = tiling->ComputeSkewport(3.5, viewport_200);
+ EXPECT_EQ(gfx::Rect(0, 200, 100, 300), skewport_200);
+
+ // Ensure that continued calls with the same value, produce the same skewport.
+ tiling->ComputeTilePriorityRects(viewport_150, 1.f, 3.5, Occlusion());
+ EXPECT_EQ(gfx::Rect(0, 200, 100, 300), skewport_200);
+ tiling->ComputeTilePriorityRects(viewport_150, 1.f, 3.5, Occlusion());
+ EXPECT_EQ(gfx::Rect(0, 200, 100, 300), skewport_200);
+
+ tiling->ComputeTilePriorityRects(viewport_200, 1.f, 3.5, Occlusion());
+
+ // This should never happen, but advance the viewport yet again keeping the
+ // time the same.
+ gfx::Rect viewport_250 = gfx::Rect(0, 250, 100, 100);
+ gfx::Rect skewport_250 = tiling->ComputeSkewport(3.5, viewport_250);
+ EXPECT_EQ(viewport_250, skewport_250);
+ tiling->ComputeTilePriorityRects(viewport_250, 1.f, 3.5, Occlusion());
+}
+
TEST(PictureLayerTilingTest, ViewportDistanceWithScale) {
FakePictureLayerTilingClient client;
« no previous file with comments | « cc/resources/picture_layer_tiling_set.cc ('k') | cc/resources/picture_pile.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698